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

关于delete的问题

在运行完delete p之后在输出*p的值就已经是随机数了,但是输出指向的地址又是正常的和最初保持不变.那么

为什么用是的delete p 而不是delete *p,删除的是指向的值又不是指向的地址

正在回答

3 回答

delete应该是删除p地址的指向,本来p指向的是5,delete之后,p指向的不再是5了。计算机是地址寻址的。

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

我去看了一下源码,delete方法的参数是*p,也就是说delete p传入的是p对应的指针,其实是指针传递,谢谢了

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

岁月长衣裳薄

什么意思啊,为什么源码里参数是*p,自己写的时候用p
2018-08-12 回复 有任何疑惑可以回复我~
#2

叶zero 提问者 回复 岁月长衣裳薄

源码的参数是...delete(Object &p),所以写delete p传入的p的地址
2018-08-12 回复 有任何疑惑可以回复我~
#3

岁月长衣裳薄 回复 叶zero 提问者

哦明白了?
2018-08-12 回复 有任何疑惑可以回复我~

我的理解 *p里的p是指向一段连续的内存的首地址, delete是释放从p地址开始的这段内存;直接从地址开始释放要快些吧。

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

慕的地0093153

只有释放了内存别的申请内存才能使用这块内存
2018-05-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

关于delete的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信