C 함수에 대해 약간의 문제가 있습니다.C - 포인터 및 함수를 사용하여 루프에 대한 세그먼트 오류가 발생했습니다.
int* CalcMeanPower(int Media[], int** MeanPowerArray, int righe, int colonne)
{
int i=0, k=0;
int ArrayPower[] = {0, 0, 0, 0};
for (i=0; i<righe; i++)
{
for (k=0; k<colonne; k++)
{
ArrayPower[k] = ArrayPower[k] + MeanPowerArray[i][k] ;
}
}
for (k=0; k<colonne; k++)
{
Media[k] = (ArrayPower[k]/righe);
}
return Media;
}
이 I 주에서 함수 호출 방법이다 :
이
함수이다VettoreMedia = CalcMeanPower (VettoreMedia, RefMeanPower, num_mean, N); 변수는 다음과 같이 정의된다
은 다음과 같습니다 : 내가하는 동안은 나에게 세그먼트 오류를 반환하는 프로그램을 실행하려고하면int* RefMeanPower[N];
int* VettoreMedia;
int N=4, num_mean=5;
:
for (k=0; k<colonne; k++)
{
Media[k] = (ArrayPower[k]/righe);
}
당신이 설명해 주시겠습니까 내가 뭘 잘못하고있어? 나는 그물을 통해 검색했지만 대답을 찾을 수 없습니다. 이 함수는 C 프로그램의 작은 조각 일 뿐이므로이 사이클에서 잘못되었다고 확신합니다!
제발 도와주세요 ..
을 할 수는'충분히 큰 ArrayPower'인가? '콜론 '의 가치는 무엇입니까? 대부분 배열의 끝을 지나칠 가능성이 높습니다. – cdarke
너무 현지화로 마감되었습니다. – djechlin
int * RefMeanPower [N]에 대해 저장소를 할당하는 방법을 표시하지 않습니다. int * VettoreMedia; – OldProgrammer