您的位置:首页 > 其它

delete后该指针还能使用么(转帖)

2009-10-11 20:01 351 查看
一本c++的书上说
"一旦用delete运算符释放了指针所指向的动态内存,就不能再对其赋值.例如:
float *p = new float;
...
delete p;
*p = 5; //p值未变,但p所指内存已被释放,再对p所指内存访问便不合法 "

但是我在dev c++还有vc2008上测试 ,都没有问题,也都能输出*p的值

这是为什么?
期待解答..

虽然内存被释放了,但指针指向的地址没有变化,这块内存也存在,有时候确实能继续操作,但是这个操作是非法的

野指针行为~~~
好的习惯是delete后,将指针赋空

float *p = new float;
...
delete p;
p=null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: