Динамический массив статических массивов - C (СИ)
Формулировка задачи:
Здравствуйте!
Пытаюсь создать двумерный динамический массив с заранее известной правой размерностью. Что-то вроде:
Как в этом случаем случае правильно выделить под него память. Желательно при помощи malloc() (под Си).
Будет ли отличаться процедура от выделения памяти под обычный двумерный динамический массив?
int *arr[2];
Решение задачи: «Динамический массив статических массивов»
textual
Листинг программы
int (*a)[2]; /* ... */ a = malloc(rowCount * sizeof(int[2])); /* ... */ free(a);
Объяснение кода листинга программы
В данном коде происходит следующее:
- Объявляется указатель на массив из 2 элементов типа int -
a
. - С помощью оператора
malloc
выделяется память под массивrowCount
строк, каждая строка состоит из 2 элементов типа int. При этом, в памяти будет выделеноrowCount
одинаковых блоков по 2 элемента типа int каждый, которые будут расположены последовательно друг за другом. - В каждой ячейке массива
a
инициализируется значение 0. - Если в какой-то момент использование этого массива больше не требуется, то его можно освободить с помощью функции
free()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д