Возможный дубликат:
Установка переменной в NULL после освобождения < / а>
Я изучаю хорошие практики программирования на C, и мой друг сказал мне всегда устанавливать указатели в NULL после их использования free () (или вызова определенной функции освобождения).
Например:
char* ptr = malloc(100);
...
free(ptr);
ptr = NULL;
or
struct graph* graph = create_graph();
...
destroy_graph(graph);
graph = NULL;
Почему это хорошая практика?
Обновление: после прочтения ответов мне это кажется ужасной практикой! Я скрываю возможные ошибки double-free (). Как это может быть хорошей практикой? Я в шоке.
Спасибо, Бода Сайдо.
NULL
. - person jamesdlin   schedule 29.07.2010(void*)0xdeadbeef
в режиме отладки, чтобы вы могли обнаружить любое ошибочное использование. - person Den-Jason   schedule 02.10.2019