【发布时间】:2013-05-24 03:20:14
【问题描述】:
我定义了:
A** mat = new A*[2];
但是我怎样才能删除它呢?使用delete[] mat; 或delete[] *mat;?
【问题讨论】:
-
这正是 RAII 的优势所在。您不必担心释放它。
-
使用容器(智能指针类型)或者自己写一个小包装器,重载
operator()(正如下面的chris指出的,我最初推荐operator[]) -
@0xC0000022L,
operator()是更好的选择。 -
@chris,公平点......对于多维数组,它肯定是:)
-
@0xC0000022L,是的,为了扩展您的观点,您仍然可以使用 1D RAII 容器来实现它:)
标签: c++ pointers delete-operator