可能是重复问题:
为什么delete不将指针设置为NULL?
指向已释放内存的指针有什么用处吗?
可能是重复问题:
为什么delete不将指针设置为NULL?
指向已释放内存的指针有什么用处吗?
C ++会完全按照您告诉它要做的事情去做。如果您没有将指针设置为null,而是删除了指针所指向的内存,则会发生问题。
如果您不需要将其设置为null(出于性能原因),为什么还要浪费额外的步骤呢?
delete
的C++中。如果您正确编码,那么让编译器将指针设置为NULL是一种浪费,因为您要么将其设置为其他内容,要么不再使用它。void myFree (void **pMem) {
free (**pMem);
*pMem = NULL;
}
myFree (&x);
不仅仅是:
free (x);
但是,如果你要达到那个级别(并引入这样的可恶之物),只需切换到Java并完成它,然后你就不必担心手动内存管理了。