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

p=NULL这句话和delete p的关系,p=NULL可不可以省略?

我想问一下大神们p=NULL这句话究竟可不可以省略,为什么老师只写了delete p而没有像前几节一样加上p=NULL?

正在回答

2 回答

最好还是加上。因为:Teacher *p = new Teacher();执行时,系统会在“堆”中开辟一个存储空间,用来存放Teacher类的成员变量等数据;在“栈”中开辟一个存储空间存放p,然后指针p指向“堆”存储空间。delete p的作用是将p的指向作用删除,p=NULL才是将p所占用的存储空间彻底释放掉。

0 回复 有任何疑惑可以回复我~

我好像自己懂了,就是delete p是释放掉p指向的内存,后面的p=NULL只是让p指向一个空,防止以后被调用,但不加也不算错,只能说不太好

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

p=NULL这句话和delete p的关系,p=NULL可不可以省略?

我要回答 关注问题
微信客服

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

帮助反馈 APP下载

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

公众号

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