一、
new/delete 使用注意:
delete 二维/高维数组的时候,如果用 for(....) delete[] _data[i]
表明 delete 的是每一个元素(一维数组指针)
有一个误区:元素指针都 delete 了,还需要 delete 整个二维数组的指针,即 _data 吗?
不是的,注意 _data == _data[0]
二、
如果对象成员有指针,切记 要手写复制构造函数 和 operator=,来实现深拷贝,不然同一内存区会被重复 delete
本文探讨了C++中new/delete操作符的正确使用方法,特别是针对二维数组的释放,并强调了当对象成员包含指针时实现深拷贝的重要性。
一、
new/delete 使用注意:
delete 二维/高维数组的时候,如果用 for(....) delete[] _data[i]
表明 delete 的是每一个元素(一维数组指针)
有一个误区:元素指针都 delete 了,还需要 delete 整个二维数组的指针,即 _data 吗?
不是的,注意 _data == _data[0]
二、
如果对象成员有指针,切记 要手写复制构造函数 和 operator=,来实现深拷贝,不然同一内存区会被重复 delete
574
335

被折叠的 条评论
为什么被折叠?