内存释放,删除[]为2d数组,一维常量

时间:2014-11-03 01:11:57

标签: c++ malloc

我使用new这样的

分配了一个2D数组
  int (*arr)[2] = new int[x][2];

x在运行时计算。

我应该如何释放这段记忆?我试过了

delete [] *arr[0];
delete [] *arr[1]; 

然而,valgrind说他们有13个分配和14个自由。

1 个答案:

答案 0 :(得分:5)

您使用一个new[],因此您应该使用一个delete[]

delete[] arr;

delete[]表格适用于任何new[]; new T[x]new T[x][2]或其他任何内容都没有单独的案例。类似new T[x][2]的表达式实际上是单个数组new,其中数组元素的类型为“2 T的数组”。