J'ai le problème que memcpy/memmove change le pointeur d'un struct FOO foo
, qui n'est ni src ni destination de la fonction. Voici les sorties gdb:Comportement étrange de memcpy/memmove
Avant memmove(y,y_temp,size_y);
:
(gdb) p y
$38 = 0xbff7a2e0
(gdb) p y_temp
$39 = (float *) 0x815ea20
(gdb) p foo
$40 = (FOO *) 0x81d4e90
et après:
(gdb) p y_temp
$41 = (float *) 0x343434
(gdb) p y
$42 = 0x343434
(gdb) p foo
$43 = (FOO *) 0x343434
Voici les définitions des variables:
FOO *foo;
float y[nsamples];
float size_y = nsamples*sizeof(y);
float* y_temp = (float*) malloc(size_y);
Je sais, que n'est pas un bug avec memcpy/move, donc je cherche un tipp, quelle erreur de programmation de mon côté pourrait avoir l'a causé.
Merci
+1, et une seconde fois aussi si je pouvais pour le conseil 'size_t' –
Merci, je savais que c'était un de ces petits bugs stupides! – Framester