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