2014-11-03 46 views
2

2D阵列内存释放我分配使用新的2D阵列这样与删除[]用于与一个尺寸恒定

int (*arr)[2] = new int[x][2]; 

x被在运行时计算。

我应该如何取消分配这个内存?我试过

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

但是,valgrind说他们是13个分配和14个释放。

+1

这是一门课,我们没有介绍矢量。我希望我们可以使用它们。 – 2014-11-03 01:15:58

+2

“使用矢量”并不是对字面上每个指针相关问题的回答。 – Barry 2014-11-03 01:19:25

+0

@巴里只有99%.. :) – 2014-11-03 01:20:55

回答

5

您可以使用一个new[],所以你应该使用一个delete[]

delete[] arr; 

delete[]形式适用于任何new[]; new T[x]new T[x][2]或其他任何东西都没有单独的情况。像new T[x][2]这样的表达式实际上是单个数组new,其中数组元素具有类型“2T的数组”。

+0

谢谢你清理! – 2014-11-03 21:10:39