0

重複の可能性:
memcpy()、size パラメータの値は?

動的配列をコピーしたい:

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);

奇妙な結果が得られます。in と out の両方にちょうどゼロ。

奇妙なことに、代わりに使用すると:

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

正確に正しい結果が得られますが、これは次の行です。

fftw_free(in);

...動作しません。「未処理の例外」エラーが発生します。

4

0 に答える 0