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

一本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;
 

posted on 2009-10-11 20:01  ATAK  阅读(845)  评论(0编辑  收藏  举报

导航