使用delete []删除在堆内存上创建的数组的数组

时间:2019-07-07 16:55:22

标签: c++

我使用auto x = new int[F][N];在堆上创建了一个数组数组。创建工作正常。但是,当我尝试使用

删除代码时
auto x = new int[F][N];
for (long i = 0; i < F; i++) {
    delete[] x[i];
}

我遇到了细分错误。根据我的理解,这是删除数组数组的正确方法。但很明显,我在这里错了。有人可以提出更好的选择吗?

1 个答案:

答案 0 :(得分:1)

使用new[]创建的所有内容都必须使用delete[]删除。 x中包含的数组是在初始new[]期间分配和初始化的。无需手动删除它们,因为它们的存储和生存期与外部阵列有关。因此,您只需要delete[] x