Создание двумерного массива - 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.
int (*matrix)[N][M] = malloc(sizeof *matrix);
- в этой строке кода происходит выделение памяти под матрицу.matrix
- это указатель на первый элемент матрицы.sizeof *matrix
- это размер памяти, которую нужно выделить. Он равен размеру указателя на элемент матрицы (в данном случаеint
).malloc
- это функция, которая выделяет память. После выполнения этой строки кода,matrix
будет указывать на выделенную память, которую можно использовать для хранения элементов матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д