删除指针数组(C ++)

时间:2018-02-23 21:05:42

标签: c++ arrays memory-management memory-leaks

我搜索了这个问题的答案,但没有遇到像我这样的案例。

拥有以下代码:

A
{
 private:
     SomeObject** _array; 
 public:
     A(int n) { 
         _array = new SomeObject*[n];
     }
     virtual ~A(){
         delete[] _array;
     }
}

正如您所见,_array是指向指针数组的指针,指向对象(SomeObject)。 代码中的析构函数是否正确? 据我所知,“delete []”调用数组中每个元素的析构函数。由于这是一个指针数组,简单地调用“delete []”是不正确的。 在我看来,正确的解决方案是1)迭代数组并删除每个元素,然后2)调用“delete [] _array”。

非常感谢你!

0 个答案:

没有答案