Создание двумерного массива - C (СИ)

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

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

Здравствуйте! Столкнулся с такой проблемой: как правильно создать двумерный массив в Си? Все, что ни пытался найти - все ведет на с++, но никак ни на си. Поясню, мне нужно создать массив по такому принципу:
 scanf("N= %d", &N);
 scanf("M= %d", &M);
    int matrix[N][M];
Но! Будет ли такой способ правильным для создания массива? Просто я всегда делал массивы в си таким образом:
scanf("N= %d", &N);
int*tab=(int*)maloc(sizeof(int)*N);
Скажите, может есть вариант создания двумерного массива как с одномерным? Или такой способ, как я написал тоже правильный? Спасибо!

Решение задачи: «Создание двумерного массива»

textual
Листинг программы
int (*matrix)[N][M] = malloc(sizeof *matrix);

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

В данном коде создается двумерный массив (матрица) с размерами N на M.

  1. int (*matrix)[N][M] = malloc(sizeof *matrix); - в этой строке кода происходит выделение памяти под матрицу.
    • matrix - это указатель на первый элемент матрицы.
    • sizeof *matrix - это размер памяти, которую нужно выделить. Он равен размеру указателя на элемент матрицы (в данном случае int).
    • malloc - это функция, которая выделяет память. После выполнения этой строки кода, matrix будет указывать на выделенную память, которую можно использовать для хранения элементов матрицы.

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


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

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

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