发布网友 发布时间:2022-04-24 16:00
共1个回答
热心网友 时间:2022-04-24 06:04
恩,你已经注意到了delete 指针实际上释放了指针所指的堆内存,但指针本身是一个32位(在32位机器上)的无符号整数。其值是对象的首地址,这个值并没变。也就是说,你用delete后,不但指针任然存在,而且其内容都没有变换。他本身的释放在超过他生命周期的时候销毁。然而现在指针所指的内存已经不可用了,再次操作其内容将会发生内存错误(比如再次delete)。所以,安全的做法是让指针值等于NULL(如果指针是NULL,delete多少次都可以!)。如果你在释放指针后,又立即分配新的值,那么赋值NULL步骤多余。