关于删除指针后指针指向问题求指教.

threadroc 2014-04-06 05:48:07
int *p=new int;
*p=100;
delete p;
cout<<p;
这段代码,删掉指针在堆中分配的内存后,指针指向的地址是哪里啊?我多次运行输出p指向的地址都指向同一个地址,貌似删掉其指向地址后,系统给其分配的内存地址不是0也不是随机的,那指向了哪里呀,求大大指教,谢谢.
...全文
257 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-04-07
  • 打赏
  • 举报
回复
引用 8 楼 threadroc 的回复:
知道原因了,VS2012这样,其余的IDE正常,还是原来的内存地址,应该是VS2012的bug吧,好了,结贴
不是bug。
threadroc 2014-04-06
  • 打赏
  • 举报
回复
知道原因了,VS2012这样,其余的IDE正常,还是原来的内存地址,应该是VS2012的bug吧,好了,结贴
threadroc 2014-04-06
  • 打赏
  • 举报
回复
引用 6 楼 jerry_dqh 的回复:
[quote=引用 4 楼 threadroc 的回复:] 另外经过测试,不能输出8123内存地址的值,程序直接停止运行,可能是没有8123内存地址,那8123代表着什么
你delete后,p成了野指针,指向的内容已经无效。p的值也是不确定的。 delete后,需要p =NULL.[/quote] 既然是不确定的,那我的测试结果为何是固定的,总是8123呢
碼上道 2014-04-06
  • 打赏
  • 举报
回复
引用 4 楼 threadroc 的回复:
另外经过测试,不能输出8123内存地址的值,程序直接停止运行,可能是没有8123内存地址,那8123代表着什么
你delete后,p成了野指针,指向的内容已经无效。p的值也是不确定的。 delete后,需要p =NULL.
threadroc 2014-04-06
  • 打赏
  • 举报
回复

delete前和后p的值
如果不变的话,我还能理解了
如果它变了,是随机数我也能理解
如果它变了,变成NULL,也就是0,我也能理解,反正delete之后要赋值NULL;
但是变成个8123,我就不能理解了,为何要变成8123?



threadroc 2014-04-06
  • 打赏
  • 举报
回复
另外经过测试,不能输出8123内存地址的值,程序直接停止运行,可能是没有8123内存地址,那8123代表着什么
threadroc 2014-04-06
  • 打赏
  • 举报
回复
啥意思 请输入一个长度最少是 6 的字符串
「已注销」 2014-04-06
  • 打赏
  • 举报
回复
无力吐槽 请输入一个长度最少是 6 的字符串
threadroc 2014-04-06
  • 打赏
  • 举报
回复


这个8123是何许人也

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧