我想知道如果要删除这样初始化的数组,如何使用删除运算符:
int (*my_ptr)[10] = new int[3][10];
这似乎无效:
delete[][]
new int[3][10]
只是简单地创建一个动态数组,其元素本身就是数组。删除方式与所有动态数组相同:delete[]
。
my_ptr
是10个元素的数组。每个元素都是int[3]
类型。
您致电delete[] my_ptr;
删除那10个元素。
您是正确的。您实际上必须删除every数组:
for (size_t i = 0; i < 10; ++i) {
delete[] my_ptr[i];
}
delete[] my_ptr;