memcpy / memmovestruct FOO foo
が、関数のsrcでも宛先でもないのポインタを変更するという問題があります。gdbの出力は次のとおりです。
前memmove(y,y_temp,size_y);
:
(gdb) p y
$38 = 0xbff7a2e0
(gdb) p y_temp
$39 = (float *) 0x815ea20
(gdb) p foo
$40 = (FOO *) 0x81d4e90
以降:
(gdb) p y_temp
$41 = (float *) 0x343434
(gdb) p y
$42 = 0x343434
(gdb) p foo
$43 = (FOO *) 0x343434
変数の定義は次のとおりです。
FOO *foo;
float y[nsamples];
float size_y = nsamples*sizeof(y);
float* y_temp = (float*) malloc(size_y);
私はそれがmemcpy/moveのバグではないことを知っているので、私はヒントを探しています。私の側のプログラミングエラーがそれを引き起こした可能性があります。
ありがとう