我對C函數有一些麻煩。C - 使用指針和函數for循環的分段錯誤
這是函數:
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;
}
這是我的呼叫從主功能:
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 2013-02-18 16:51:11
由於太局部化而關閉。 – djechlin 2013-02-18 16:54:44
你不顯示如何爲int * RefMeanPower [N]分配存儲空間; int * VettoreMedia; – OldProgrammer 2013-02-18 16:55:43