在函数C++中分配内存二维数组
Allocate memory 2d array in function C++
我正在尝试在 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));
}
谢谢!
您有额外的星星。函数应该是
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;
}
我正在尝试在 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));
}
谢谢!
您有额外的星星。函数应该是
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;
}