返回信息流一本c++的书上说
"一旦用delete运算符释放了指针所指向的动态内存,就不能再对其赋值.例如:
float *p = new float;
...
delete p;
*p = 5; //p值未变,但p所指内存已被释放,再对p所指内存访问便不合法 "
但是我在dev c++还有vc2008上测试 ,都没有问题,也都能输出*p的值
这是为什么?
期待解答..
这是一条镜像帖。来源:北邮人论坛 / cpp / #29674同步于 2009/10/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
delete后该指针还能使用么?
fitsir
2009/10/10镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
恩,谢谢
【 在 Wing 的大作中提到: 】
: 虽然内存被释放了,但指针指向的地址没有变化,这块内存也存在,有时候确实能继续操作,但是这个操作是非法的
【 在 fitsir 的大作中提到: 】
: 一本c++的书上说
: "一旦用delete运算符释放了指针所指向的动态内存,就不能再对其赋值.例如:
: float *p = new float;
: ...................
野指针行为~~~
好的习惯是delete后,将指针赋空
float *p = new float;
...
delete p;
p=null;
re...
【 在 feel48 (feel) 的大作中提到: 】
: 野指针行为~~~
: 好的习惯是delete后,将指针赋空
: float *p = new float;
: ...................
赞~
【 在 feel48 的大作中提到: 】
: 野指针行为~~~
: 好的习惯是delete后,将指针赋空
: float *p = new float;
: ...................