【发布时间】:2019-04-07 20:07:19
【问题描述】:
我在 c++ 中使用 fftw 进行傅立叶变换。有标准的数据类型fftw_complex,它基本上是一个double[2]。我想做一个fftw_complex数组。我这样做了
typedef fftw_complex fftw_complex_16[65536];
我将数组中的所有内容都设置为零。然后我有另一个函数应该检查 fftw_complex_16 是否为空。
bool is_empty_fftw_complex_16(fftw_complex_16 *thecomplex){
std::cout<<"Test\n"<<::vowels["a:"][0][0]<<std::endl;
for (unsigned long i=0; i<65536; i++){
if(thecomplex[i][0] != 0 || thecomplex[i][1] != 0){
std::cout<<"Huch!"<<i<<std::endl;
std::cout<<thecomplex[i][0]<<" -- "<<thecomplex[i][1]<<std::endl;
std::cout<<*thecomplex[i][0]<<" -- "<<*thecomplex[i][1]<<std::endl;
return 1;
}
}
return 0;
}
忘记 couts,它们仅用于调试。如果指针参数指向的数组为空,则函数应该做的唯一一件事是返回 true,否则返回 false。这没用。该函数表示数组不为空!请帮忙,我做错了什么?
【问题讨论】:
-
"有标准数据类型
fftw_complex,基本上就是double[2]"那不是c++标准数据类型。 -
“它不起作用。函数说数组不是空的!请帮忙,我做错了什么?”提供一个minimal reproducible example复制你的请按这里的要求解决问题。