Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ `马洛克';64位linux机器上的segfault_C++_Segmentation Fault_Fftw - Fatal编程技术网

C++ `马洛克';64位linux机器上的segfault

C++ `马洛克';64位linux机器上的segfault,c++,segmentation-fault,fftw,C++,Segmentation Fault,Fftw,我正在尝试重新编译一个使用fftw3(版本3.2.2)并已在32位linux机器上运行的程序。它在64位机器上正确编译——我链接到了64位fftw库——但在尝试fftw\u malloc时,程序会出错。以下是使用的代码: //the variables on the right side are already initialized to nonzero values int olsLen = blockLen + tempLen - 1; int num_chans = 23; fftw_

我正在尝试重新编译一个使用fftw3(版本3.2.2)并已在32位linux机器上运行的程序。它在64位机器上正确编译——我链接到了64位fftw库——但在尝试
fftw\u 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_滤波器,但如果我重新排序变量,程序将在第一个fftw_malloc上segfault

看起来您需要升级到3.3.3。我不知道为什么您的设置不起作用,但直到3.3-beta1才添加fftw_alloc_complex():

新的方便函数fftw_alloc_real和fftw_alloc_complex to 使用fftw_malloc处理不带类型转换或 sizeof


升级后,这种情况还会发生吗?(您最初的问题或对@ArjunShankar评论的回复)

看起来您需要升级到3.3.3。我不知道为什么您的设置不起作用,但直到3.3-beta1才添加fftw_alloc_complex():

新的方便函数fftw_alloc_real和fftw_alloc_complex to 使用fftw_malloc处理不带类型转换或 sizeof


升级后,这种情况还会发生吗?(您最初的问题或对@ArjunShankar评论的回应)

程序在哪个fftw_malloc调用上出错?看起来是个愚蠢的问题,因为每个电话都是一样的。忘了提那个了。它在gabor_滤波器上进行分段故障,但是如果对变量进行重新排序,那么无论第一个分段故障是什么(即,当block_信号是第一个时,这将是分段故障),您是否可以尝试改为看看会发生什么?这是一个方便的函数,用于分配复合体。我只是想知道接下来会发生什么。我得到一个编译错误:在成员函数FtrCalc_Rasta::Process_Gabor(…)中错误:在“*”标记之前应该有一个主表达式//第一个fftw_alloc_复杂行错误:“fftw_alloc_复杂”没有在这个作用域中定义,在哪个fftw_malloc调用程序?看起来是个愚蠢的问题,因为每个电话都是一样的。忘了提那个了。它在gabor_滤波器上进行分段故障,但是如果对变量进行重新排序,那么无论第一个分段故障是什么(即,当block_信号是第一个时,这将是分段故障),您是否可以尝试改为看看会发生什么?这是一个方便的函数,用于分配复合体。只是想知道接下来会发生什么。我得到一个编译错误:在成员函数FtrCalc_Rasta::Process_Gabor(…)中错误:在“*”标记之前应该有一个主表达式//第一个fftw_alloc_复杂行错误:“fftw_alloc_复杂”未在此范围内定义