使用memcpy转换复杂< double> *到fftw_complex *

时间:2013-01-29 14:16:20

标签: c++ visual-c++ fftw

  

可能重复:
  memcpy(), what should the value of the size parameter be?

我想复制一个动态数组:

g  = new complex<double> [N*N]; 

in类型的fftw_complex*

in = (fftw_complex*) fftw_alloc_complex(N*N);

当我使用时:

in= (fftw_complex*) fftw_alloc_complex(N*N);
memcpy( in , g , sizeof(g));
out = (fftw_complex*) fftw_alloc_complex(N*N);
my_plan = fftw_plan_dft_2d(N,N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(my_plan);
fftw_destroy_plan(my_plan);
fftw_free(in);
fftw_free(out);

我得到了奇怪的结果。无论是进出都是零。

奇怪的是,当我使用时:

memcpy( &in , &g , sizeof(g));

我得到了完全正确的结果,但是这一行:

fftw_free(in);

......不起作用。它给出了“未处理的异常”错误。

0 个答案:

没有答案