Динамический массив статических массивов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Пытаюсь создать двумерный динамический массив с заранее известной правой размерностью. Что-то вроде:
int *arr[2];
Как в этом случаем случае правильно выделить под него память. Желательно при помощи malloc() (под Си). Будет ли отличаться процедура от выделения памяти под обычный двумерный динамический массив?

Решение задачи: «Динамический массив статических массивов»

textual
Листинг программы
int (*a)[2];
/* ... */
a = malloc(rowCount * sizeof(int[2]));
/* ... */
free(a);

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Объявляется указатель на массив из 2 элементов типа int - a.
  2. С помощью оператора malloc выделяется память под массив rowCount строк, каждая строка состоит из 2 элементов типа int. При этом, в памяти будет выделено rowCount одинаковых блоков по 2 элемента типа int каждый, которые будут расположены последовательно друг за другом.
  3. В каждой ячейке массива a инициализируется значение 0.
  4. Если в какой-то момент использование этого массива больше не требуется, то его можно освободить с помощью функции free().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы