删除指针的后果

The*_*tMe 3 c++ memory-management

Object *p = new Object();
delete p;
Run Code Online (Sandbox Code Playgroud)

当我删除p时,删除堆上的对象分配.但是p本身究竟发生了什么?它是从堆栈中删除的吗?或者它仍然在堆栈中仍然包含以前保存对象的内存的地址?

sim*_*onc 8

p仍然在堆栈中并保存Object您刚刚删除的地址.您可以自由重用p,将其指定为指向其他已分配的数据或NULL/ nullptr.