【发布时间】:2020-07-10 22:21:54
【问题描述】:
如果我想删除这样初始化的数组,我想知道如何使用删除运算符:
int (*my_ptr)[10] = new int[3][10];
这似乎无效:
delete[][]
【问题讨论】:
-
delete[][]无效。使用delete[]。它将根据需要调用所有析构函数。
标签: c++ memory-leaks delete-operator
如果我想删除这样初始化的数组,我想知道如何使用删除运算符:
int (*my_ptr)[10] = new int[3][10];
这似乎无效:
delete[][]
【问题讨论】:
delete[][] 无效。使用delete[]。它将根据需要调用所有析构函数。
标签: c++ memory-leaks delete-operator
my_ptr 是一个包含 3 个元素的数组。每个元素都是一个int[10] 类型。
你调用delete[] my_ptr;删除这3个元素。
【讨论】:
new int[3][10] 只是创建一个动态数组,其元素本身就是数组。这与所有动态数组的删除方式相同:delete[]。
【讨论】: