可能是重复问题:
释放内存后将变量设置为NULL
我正在学习良好的C编程实践,我的朋友告诉我,在free()(或调用特定的释放函数)之后总是要将指针设置为NULL。
例如:
char* ptr = malloc(100);
...
free(ptr);
ptr = NULL;
或者
struct graph* graph = create_graph();
...
destroy_graph(graph);
graph = NULL;
为什么这是一个好的实践?
更新:阅读答案后,我认为这是一个非常糟糕的实践!我隐藏了可能的double-free()错误。这怎么可能是一个好的实践?我感到震惊。
谢谢,Boda Cydo。