<分区>
Possible Duplicate:
Should one really set pointers toNULL
after freeing them?
我已经使用 malloc 和 calloc 将动态内存分配给指针。使用此指针后,我应该释放内存,以便该 block 可以返回给操作系统(没问题)。现在我的问题是,在释放 block 之后,我为什么要这样做:
pointer = NULL;
感谢帮助...
<分区>
Possible Duplicate:
Should one really set pointers toNULL
after freeing them?
我已经使用 malloc 和 calloc 将动态内存分配给指针。使用此指针后,我应该释放内存,以便该 block 可以返回给操作系统(没问题)。现在我的问题是,在释放 block 之后,我为什么要这样做:
pointer = NULL;
感谢帮助...
最佳答案
这样我们就不会留下悬挂指针。如果不清空未使用的指针,您将无法在以后检测是否可以安全地取消引用或释放指针。并且尝试取消引用或释放悬挂指针会导致未定义的行为(= 崩溃)。
关于c - 为什么我们要在通过 free() 释放内存后使指针无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861656/