我正在尝试重新编译一个使用 fftw3(版本 3.2.2)并且已经在 32 位 linux 机器上运行的程序。它可以在 64 位机器上正确编译——我链接到 64 位 fftw 库——但是程序在尝试fftw_malloc
. 下面是使用的代码:
//the variables on the right side are already initialized to nonzero values
int olsLen = blockLen + tempLen - 1;
int num_chans = 23;
fftw_complex *gabor_filter, *block_signal, *ols_out;
gabor_filter = (fftw_complex *) fftw_malloc( olsLen
* num_chans
* sizeof(fftw_complex));
block_signal = (fftw_complex *) fftw_malloc( olsLen
* num_chans
* sizeof(fftw_complex));
ols_out = (fftw_complex *) fftw_malloc( olsLen
* num_chans
* sizeof(fftw_complex));
看起来问题应该很明显,但我现在太傻了,看不到我的错误。有任何想法吗?
编辑:它在第一个 fftw_malloc 上出现段错误。在这种情况下,它是 gabor_filter,但如果我重新排序变量,程序将在第一个 fftw_malloc 上出现段错误。