C++ 如何在C+;中删除指向数组的指针+;

C++ 如何在C+;中删除指向数组的指针+;,c++,memory-leaks,delete-operator,C++,Memory Leaks,Delete Operator,我想知道如果我想删除一个初始化如下的数组,如何使用delete操作符: int (*my_ptr)[10] = new int[3][10]; 这似乎是无效的: delete[][] newint[3][10]只是创建一个动态数组,其元素本身就是数组。这与所有动态数组的删除方式相同:delete[]my_ptr是一个包含3个元素的数组。每个元素都是int[10]类型 你调用delete[]我的ptr删除这3个元素。删除[][]无效。使用删除[]。它将根据需要调用所有析构函数。它实际上是一个由

我想知道如果我想删除一个初始化如下的数组,如何使用delete操作符:

int (*my_ptr)[10] = new int[3][10];
这似乎是无效的:

delete[][]

newint[3][10]
只是创建一个动态数组,其元素本身就是数组。这与所有动态数组的删除方式相同:
delete[]
my_ptr
是一个包含3个元素的数组。每个元素都是
int[10]
类型


你调用
delete[]我的ptr
删除这3个元素。

删除[][]
无效。使用
删除[]
。它将根据需要调用所有析构函数。它实际上是一个由3个数组和10个元素组成的数组。我也先搞错了。这很奇怪,但是动态部分位于元素类型的中间。@ ASMMO可能会混淆,因为子对象不具有静态存储。