0
大家下午好, 所以我正在學習使用FFTW,我正在測試從真實到複雜的一維DFT,並且一切工作正常。然後,現在我嘗試使用2D轉換進行同樣的操作,並發現我的程序失敗。使用FFTW執行2D DFT時出錯
事情是,當我試圖執行我的計劃時,我得到了Segmentation Fault (core dumped)
。這並沒有發生在1D計劃中,我已經閱讀了Stack Overflow中的所有文檔和其他問題,但是我找不到我的程序失敗的地方。
你可以看到,在代碼中有一對夫婦的打印尋找到我的程序崩潰和執行時,它的公正,它打印executing
但從未達到executed
所以我認爲錯誤應該來自於計劃的聲明,但是我不知道爲什麼。
// Declaring variables
const int Nx=88;
const int Ny=44;
const int DataFiles=512;
fftw_complex *out2;
double *in2= (double *) fftw_malloc(sizeof(double) * Ny*Nx);
out2 = (fftw_complex*) fftw_malloc(Nx*(Ny/2+1) * sizeof(fftw_complex));
fftw_plan p2 = fftw_plan_dft_r2c_2d (Ny,Nx, in2, out2, FFTW_ESTIMATE);
printf("done \n");
for (n=0; n<DataFiles;n++){
// Filling input with the data
for(kjj=0;kjj<Ny;kjj++){
for(kii=0;kii<Nx;kii++){
index = kjj*Nx + kii;
in[index]=data[n][kii][kjj];
}}
printf("executing \n");
fftw_execute(p2);
printf("executed \n");
// DO THINGS WITH OUT[][]
}
我試圖改變NX紐約的計劃訂單,因爲我不知道它是否應該先去但無論如何,我得到的錯誤最小。
任何形式的幫助或指出可能是這個問題將是一個巨大的解脫。非常感謝你。