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

求助!想知道封装下2.2 老师说的10分21秒的位置,说执行完for之后,指针等于3,还有关于内存的问题

想知道老师说的10分21秒的位置,说执行完for之后,指针等于3,非法才跳出循环,可是指针p不是一直在--吗,为什么会等于3??j不是应该2、1、0,继续减为-1,才非法跳出For循环吗?这样再进行p++,才刚好和开始分配的内存相同,不然内存这点也解释不通啊??到底刚开始申请的哪段内存,后面释放的如果不加p++又指的是哪段内存??求助大神

正在回答

1 回答

老师说的是j=3哦。前面从堆上申请了p数组;在对p数组进行实例化时候进行了两次p++,p走到了第三个元素的位置;

如果只进行两次p--,那么p 刚好回到第一个元素的位置。但是在对p数组遍历时候,进行了三次p--。

p已经跑出我们申请的内存范围了。所以需要再来一次p++,使得p回到内存中的第一个元素的位置上来,在进行

delete[]p 释放。

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

朵小妖儿 提问者

非常感谢!
2016-11-17 回复 有任何疑惑可以回复我~

举报

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

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

求助!想知道封装下2.2 老师说的10分21秒的位置,说执行完for之后,指针等于3,还有关于内存的问题

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