话说delete到底干了什么?

2018-01-11  本文已影响0人  Chenglin_Yu

#include

usingnamespacestd;

intmain()

{

       int*a=newint(5);

       int*p=a;

       cout<<"5这个整型存储的地址是"<

       cout<<"指针变量a指向的数值是"<<*a<

       cout<<"指针变量a的值是"<

       delete a;

       cout<<"已经删除了指针变量"<

       cout<<"现在p存储的地址是"<

       cout<<"现在a存储的地址是"<

       cout<<"现在p指向的整型是"<<*p<

       cout<<"现在我重新给指针p指向的值赋值为 6"<

       *p= 6;

       cout<<"再次输出得到的值为"<

       cout<<*p<

       //其实就是这个地址的内存已经被释放了,已经不是原先的那个东西了。指针变量的值

       //自始至终都没有变过,但是最后指针变量指向的值已经改变了

       return0;

}

输出的截图是

5这个整型存储的地址是00C46518

指针变量a指向的数值是5

指针变量a的值是00C46518

已经删除了指针变量

现在p存储的地址是00C46518

现在a存储的地址是00C46518

现在p指向的整型是-572662307

现在我重新给指针p指向的值赋值为 6

再次输出得到的值为

6

说明了这是这个指针不指向这段内存了,这个内存地址依然是存在了,但是是可以再用的。

上一篇下一篇

猜你喜欢

热点阅读