Ist es immer ratsam, Zeiger auf NULL zu setzen, nachdem Sie sie freigegeben haben ()? [Duplikat
Mögliches Duplizieren:
Variable auf NULL setzen, nachdem sie frei ist…
Ich lerne etwas über gute C-Programmierpraktiken und mein Freund sagte mir, ich solle die Zeiger immer auf NULL setzen, nachdem ich sie freigegeben habe (oder eine bestimmte Freigabefunktion aufgerufen habe).
Beispielsweise
char* ptr = malloc(100);
...
free(ptr);
ptr = NULL;
ode
struct graph* graph = create_graph();
...
destroy_graph(graph);
graph = NULL;
Warum ist das eine gute Übung?
Update: Nachdem ich die Antworten gelesen habe, scheint es mir eine schreckliche Übung zu sein! Ich verstecke mögliche double-free () Fehler. Wie kann dies möglicherweise eine gute Praxis sein? Ich bin schockiert
ielen Dank, Boda Cyd