我遇到了我的代码问题,希望你能帮上忙。当我输入一个奇数时,我给出了一个分段错误,并且如果它是偶数则发生总线错误。我试图将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