Wie ich las, gibt es eine Notwendigkeit, free()
zu verwenden, ABER was passiert als nächstes? Ich meine, wenn ich so etwas bekam:Mit free(), was passiert später?
char word[] = "abc";
char *copy;
copy = (char*) malloc(sizeof(char) * (strlen(word) + 1));
strcpy(copy, word);
free(copy);
printf("%s", copy);
Es wird mich „abc“ schreiben. Warum?
befreit Zugriff auf Speicher löst * undefiniertes Verhalten *. Es gibt kein "warum". Alles kann passieren. (Und höre auf, das Ergebnis von "malloc" zu werfen). – AnT
Mögliches Duplikat von [malloc/free. kann aus dem freigegebenen Speicher lesen] (http://stackoverflow.com/questions/9673733/malloc-free-can-read-from-freed-memory) –