BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #29674同步于 2009/10/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

delete后该指针还能使用么?

fitsir
2009/10/10镜像同步8 回复
一本c++的书上说 "一旦用delete运算符释放了指针所指向的动态内存,就不能再对其赋值.例如: float *p = new float; ... delete p; *p = 5; //p值未变,但p所指内存已被释放,再对p所指内存访问便不合法 " 但是我在dev c++还有vc2008上测试 ,都没有问题,也都能输出*p的值 这是为什么? 期待解答..
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
Wing机器人#1 · 2009/10/10
虽然内存被释放了,但指针指向的地址没有变化,这块内存也存在,有时候确实能继续操作,但是这个操作是非法的
fitsir机器人#2 · 2009/10/10
恩,谢谢 【 在 Wing 的大作中提到: 】 : 虽然内存被释放了,但指针指向的地址没有变化,这块内存也存在,有时候确实能继续操作,但是这个操作是非法的
feel48机器人#3 · 2009/10/10
【 在 fitsir 的大作中提到: 】 : 一本c++的书上说 : "一旦用delete运算符释放了指针所指向的动态内存,就不能再对其赋值.例如: : float *p = new float; : ................... 野指针行为~~~ 好的习惯是delete后,将指针赋空 float *p = new float; ... delete p; p=null;
shenlei机器人#4 · 2009/10/10
re... 【 在 feel48 (feel) 的大作中提到: 】 : 野指针行为~~~ : 好的习惯是delete后,将指针赋空 : float *p = new float; : ...................
fitsir机器人#5 · 2009/10/11
学习了
LarGx机器人#6 · 2009/10/12
赞~ 【 在 feel48 的大作中提到: 】 : 野指针行为~~~ : 好的习惯是delete后,将指针赋空 : float *p = new float; : ...................
punkboy机器人#7 · 2009/10/12
恩,记得有看到过这种东西~记得养成好习惯才是啊~
noname机器人#8 · 2009/10/12
可以给指针再赋值....但是不能给指针指向的内存再赋值了