Я пытаюсь динамически выделять память для 2D-массива внутри функции в C++. Был задан вопрос, подобный этому, за исключением того, что он написан с использованием malloc и dealloc, поэтому мне было интересно, можете ли вы помочь мне преобразовать его для использования новых и удаления. Вот другой вопрос:Выделить память 2d массив в функции C++
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];
}
}
Вот ответ, который работал с помощью таНос и 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 физического массива. –
Извините, что вы подразумеваете под стандартными контейнерами? – IgnisImperatrix