2
2D阵列内存释放我分配使用新的2D阵列这样与删除[]用于与一个尺寸恒定
int (*arr)[2] = new int[x][2];
x被在运行时计算。
我应该如何取消分配这个内存?我试过
delete [] *arr[0];
delete [] *arr[1];
但是,valgrind说他们是13个分配和14个释放。
2D阵列内存释放我分配使用新的2D阵列这样与删除[]用于与一个尺寸恒定
int (*arr)[2] = new int[x][2];
x被在运行时计算。
我应该如何取消分配这个内存?我试过
delete [] *arr[0];
delete [] *arr[1];
但是,valgrind说他们是13个分配和14个释放。
您可以使用一个new[]
,所以你应该使用一个delete[]
:
delete[] arr;
的delete[]
形式适用于任何new[]
; new T[x]
和new T[x][2]
或其他任何东西都没有单独的情况。像new T[x][2]
这样的表达式实际上是单个数组new
,其中数组元素具有类型“2T的数组”。
谢谢你清理! – 2014-11-03 21:10:39
这是一门课,我们没有介绍矢量。我希望我们可以使用它们。 – 2014-11-03 01:15:58
“使用矢量”并不是对字面上每个指针相关问题的回答。 – Barry 2014-11-03 01:19:25
@巴里只有99%.. :) – 2014-11-03 01:20:55