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

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

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

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

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

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

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

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

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

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


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

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

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы