我正在使用fftw在c ++中进行傅立叶变换。有标准数据类型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;
}
忘记提示,它们仅用于调试。如果指针参数指向的数组为空,则该函数唯一要做的是返回true,否则返回false。这是行不通的。该函数说数组不为空!请帮忙,我在做什么错了?
答案 0 :(得分:3)
问题似乎是这个
CREATE PROCEDURE `ValidarLogin` (@Email VARCHAR(45), @Senha VARCHAR(255))
BEGIN
AS
SELECT ID, NOME, DATA_NASCIMENTO
FROM usuario
WHERE EMAIL = @Email AND SENHA = @Senha;
END
根据您的描述,哪个应该是这个
bool is_empty_fftw_complex_16(fftw_complex_16 *thecomplex){
但是很难完全确定,因为您没有发布设置该数组并调用此函数的代码,但是很遗憾,这是错过的关键。
这样的东西将是调用该函数的正确方法
bool is_empty_fftw_complex_16(fftw_complex *thecomplex){
我猜您是将上面的错误声明与此错误的调用合并了。
fftw_complex_16 array;
...
is_empty_fftw_complex_16(array);
这会编译,但不会执行您想要的操作。