我遇到了我的代碼問題,希望你能幫上忙。當我輸入一個奇數時,我給出了一個分段錯誤,並且如果它是偶數則發生總線錯誤。我試圖將00添加到數據數組中,以將它從長度Nprime轉換爲我輸入的新的更大長度的Ndprime。我在函數* fpad中執行此操作,其中我的paddata數組包含Nprime複數(即2 * Nprime組件),並且需要將其調整爲2 * Ndprime大小。總線錯誤和分段錯誤取決於輸入的值
double *fpad(double *paddata, unsigned int Nprime, unsigned int Ndprime)
{
if (Nprime!=Ndprime)
{
paddata=(double*)realloc(paddata,(sizeof(double)*((2*Ndprime)-1)));
for(i>=((2*Nprime));i<(2*Ndprime);i++) paddata[i]=0;
if(paddata==NULL) /* Checks memory is reallocated */
{
printf("\nError reallocating memory.\n");
free(paddata);
exit(EXIT_FAILURE);
}
}
return(paddata);
}
任何幫助將不勝感激,我不明白我做錯了什麼。
當你知道它是'NULL'時,'free(paddata)'沒有意義。 – Jens