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

时间:2016-03-08 02:09:01

标签: c++ arrays multidimensional-array dynamic-memory-allocation

我正在尝试为C ++中的函数内的2D数组动态分配内存。 除了使用malloc和dealloc编写了一个完全相同的问题,所以我想知道你是否可以帮我转换它以使用new和delete。这是另一个问题:

errordlg

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

hnum

以下是使用malloc和dealloc的解决方法:

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

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试

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

答案 1 :(得分:-1)

你有额外的明星。该功能应该是

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