Как правильно выделить память под двумерный динамический массив - C (СИ)
Формулировка задачи:
подскажите как правильно выделить память под двумерный динамический массив?
Решение задачи: «Как правильно выделить память под двумерный динамический массив»
textual
Листинг программы
int **a = (int**)malloc(n* sizeof(int*));//выделяем память под массив указателей на строки - n штук
for (int i=0; i<[B]n[/B]; i++)
{
a[i]=(int*)malloc(m*sizeof(int)); //выделяем память под каждую строку длины m
}
Объяснение кода листинга программы
- В начале кода мы выделяем память под массив указателей на строки, используя функцию malloc. Указатель на массив указателей на строки сохраняется в переменной
a. - Затем мы используем цикл for для прохода по всем элементам массива
a. - Внутри цикла мы выделяем память под каждую строку, используя функцию malloc. Результат сохраняется в соответствующем элементе массива
a. - В конце кода у нас есть двумерный динамический массив
a, где каждый элементa[i][j]может быть доступен по индексу i и j.