HEAP CORRUPTION DETECTED
-
Das habe ich auch schon getest, dadurch werden aber die ersten beiden Elemente überschrieben.
Beipiel:
Ergibnis:
1 2 5 6Ziel:
1 2 3 4 5 6
-
Ich denke
Index 0 1 2 3 4 5 vorher 3 4 5 6 Ziel 3 4 3 4 5 6
Jetzt kannst du Index 0 und 1 mit deinen neuen Werten beschreiben.
alteGroesse ist in Byte angegeben.
-
Nein.
Vorher:
3 4 5 6
Ziel:
1 2 3 4 5 6
3 und 4 werden aktuell über schrieben.
-
Wo kommen denn bei dir 1 und 2 her?
Zeig mal deinen Code.
-
... am besten mit dem malloc für das zu kurze test.
-
test = (unsigned char *)malloc(4); test[0]= 3; test[1]= 4; test[2]= 5; test[3]= 6; realloc(test, 6); memmove(test + 4, test, (off_t)fw_buf_size); test[0]= 1; test[1]= 2;
Π
-
HEAP schrieb:
memmove(test + 4, test, (off_t)fw_buf_size);
=>
memmove(test + 2, test, 4);
-
In der Annahme das test auch ein char* ist.
Ich weiß jetzt auch nicht, wo da das
fw_buf_size
[c] plötzlich herkommt.
-
In der Annahme das test auch ein
unsigned char*
ist.
-
Den Rückgabewert von
realloc(test, 6);
nicht zu nutzen ist imho recht kühn.