我在学习动态开辟和释放内存的时候,在我执行下面代码时,发现用delete释放掉后,该指针仍然可以使用,说明delete释放掉的是存放对象的空间,而原来的指针仍然存在,可以继续使用。
class Point
{
public:
Point()
{
cout<<"调用构造函数"<<endl;
}
~Point()
{
cout<<"调用析构函数"<<endl;
}
};
int main()
{
Point* p = new Point;//在堆区开辟一块空间存放Point对象,用P指针它
delete p;
cout << p << endl;
Point p1;
p = &p1;//原来的P指针仍然可以指向一个Point对象
return 0;
}
代码执行结果: