【发布时间】:2016-06-21 19:46:12
【问题描述】:
我正在尝试为 C++ 中的函数内的二维数组动态分配内存。 除了它是使用 malloc 和 dealloc 编写的之外,已经提出了一个与此完全相同的问题,所以我想知道您是否可以帮助我将其转换为使用 new 和 delete。这是另一个问题:
Allocate memory 2d array in function C
我尝试将其更改为以下代码,但出现错误。
void assign_memory_for_board(int ROWS, int COLS, int *** board) {
*board = new int**[ROWS];
for (int i = 0; i < ROWS; i++) {
(*board)[i] = new int*[COLS];
}
}
这是使用 malloc 和 dealloc 的答案:
void allocate_mem(int*** arr, int n, int m)
{
*arr = (int**)malloc(n*sizeof(int*));
for(int i=0; i<n; i++)
(*arr)[i] = (int*)malloc(m*sizeof(int));
}
谢谢!
【问题讨论】:
-
为什么这么多明星?只需使用适当的标准容器。
-
除非另有限制,否则始终首选
std::vector或std::array,并考虑使用2D 视图而不是1D 物理阵列。 -
抱歉,标准容器是什么意思?
-
像 std::vector 这样的标准容器。
-
std::vector等。人。
标签: c++ arrays multidimensional-array dynamic-memory-allocation