在函数 C++ 中分配内存 2d 数组

Allocate memory 2d array in function C++

本文关键字:内存 2d 数组 分配 函数 C++      更新时间:2023-10-16

我正在尝试为 C++ 函数内的 2D 数组动态分配内存。除了它是使用 malloc 和 dealloc 编写的之外,已经提出了一个完全相同的问题,所以我想知道您是否可以帮助我将其转换为使用 new 和删除。这是另一个问题:

在函数 C 中分配内存 2d 数组

我尝试将其更改为以下代码,但出现错误。

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));
} 

谢谢!

你有额外的星星。函数应该是

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];
   }
}

试试吧

int AllocMatrix(int ***K, int h, int c){
    *K = new int *[h];
    for(int i=0; i < h; i++){
        *K[i] = new int[c];
    }
    if(K == NULL){
        return 0;
    }
    cout<<"Avaiable!"<<endl;
    return 1;
}