为了账号安全,请及时绑定邮箱和手机立即绑定

”悬空指针“的怪异现象!!

”悬空指针“的怪异现象!!

梵蒂冈之花 2019-04-16 20:27:50
看起来有问题,但是运行起来却没有问题,/*我的代码*/#include#include#includeintmain(){char*p=NULL;p=(char*)malloc(4*sizeof(char));free(p);/****这里已经释放了p指向的内存块****/strcpy(p,"abc");printf("%s\n",p);retrun0;}/*free(p)释放了p指向的内存块,但是并没有改变p本身。于是产生了悬空指针,此时p不再指向有效的内存块,strcpy函数修改了p指向的内存块,却没有造成程序崩溃,为啥?****不科学啊?*/本人再MacOSX10.9上编译,运行却没有出错。求解释》》》!!!
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

通俗点说,你吃完了雪糕把木棍扔在垃圾桶里,往前走了两步突然灵光一现,又回去垃圾桶把木棍捡出来舔一下。
你看,只要你动作够快,在垃圾车收垃圾之前是能在垃圾桶里找回来那根木棍的
但显然的使用free掉的内存和舔垃圾桶里捡来的木棍一样脑残,说不定你就捡到别人扔的木棍了
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 437 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号