【发布时间】:2017-12-12 12:55:28
【问题描述】:
我是这样分配的:
float** matrix = new float*[size];
for (int i = 0; i < size; i++) {
matrix[i] = new float[size];
}
这就是我如何解除分配:
if (matrix != nullptr) {
for (int i = 0; i < size; i++) {
delete[] matrix[i];
}
}
free(matrix);
这是正确的还是我也应该delete[]外部数组?
【问题讨论】:
-
每个
new需要匹配一个delete,每个new[]需要匹配一个delete[]。 -
为什么不使用 std::vector?
-
@GauravSehgal:绝对不是。
-
哦是的..我的坏..我在想什么。@Bathsheba 谢谢。
-
大概,您应该使用 new 来创建外部数组,所以是的,调用 delete[] 将是释放它的方法。
标签: c++ memory-management