我正在使用以下代码创建一个具有复杂数据类型(来自c中的complex.h)的二维数组。然后,我想要“就地”找到该数组的fft。但是它会导致分段错误,我担心这是由于指针的不正确转换引起的。我们如何在fftw中使用复杂数据类型?
//a is a 2d array of size blockSize*NO_INPUTS
complex float* a=(complex float*)malloc(sizeof(complex float)*NO_INPUTS*blockSize);
//****** Put data in a*******//
//blah//
//blah//
//a has data now//
fftw_plan p;
p=fftw_plan_dft_2d(blockSize,NO_INPUTS,(fftw_complex*)a,(fftw_complex*)a,FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);
请注意,我不想使用fftw_complex或fftw_malloc。谢谢。