问答详情
源自:2-3 [C++]对象数组实践(二)

p=NULL的疑惑

为啥在释放内存delete的时候使用的是delete []p;但是在对p赋空的时候,却不是使用p[0] = NULL;p[1]=NULL;p[2]=NULL;而是直接 p = NULL;就行了呢?

提问者:慕函数0574502 2017-11-11 11:08

个回答

  • 慕移动9181930
    2022-03-24 07:31:53

    嗯,是的。希望课程对你有帮助。

  • DesertSeagull
    2017-11-11 11:22:50

    怎么说呢,p是一个指针,p[1],p[2]都是通过这个向后指针找到的。delete []p后,p[0]p[1]p[2]内容都删除了,但是p指针还在,所以通过置p=NULL防止别的地方用到。也就是说三个元素的数组是可以通过首地址指针p来实现各种操作的,可以当作本没有什么p[1],p[2]指针,而且p[1]p[2]根本就不是指针!!有点乱。。。