这是一个名为Foo的虚拟类的实现中的复制构造函数和析构函数。 构造
Foo::Foo(int n): size(n)
{
A = new(nothrow) ArrayType *[size];
assert(A);
for(int i = 0; i < size; ++i) {
A[i] = new (nothrow) ArrayType[size+2];
assert(A[i]);
for(int j = 0 ; j < size; ++j)
A[i][j] = VALUE;
}
}
析构
Foo::~Foo()
{
for (int i = 0; i < size; ++i) {
delete[] A[i];
}
delete[] A;
}
.h文件中的数组声明。
ArrayType **A;
大家好,我的程序动态分配一个2d数组,然后在程序结束时解除分配。我的问题是,我应该在析构函数中使用delete还是删除[]?哪个是对的?我的程序在两种方式都执行得很好但是我无法判断是否有任何一种导致未定义的行为或后台的内存泄漏。