Указатели и динамическая память - C (СИ)
Формулировка задачи:
1. Создать массив с использованием указателя. Заполнить созданный массив значениями согласно варианту. Для обращения к элементам массива при заполнении использовать индексы массива. Результат в виде таблицы значений массива вывести на консоль. Для обращения к элементам массива при выводе информации использовать указатели.
2. Создать массив в динамической памяти. Заполнить созданный массив значениями согласно варианту. Результат в виде таблицы значений массива вывести на консоль. После завершения работы с массивом освободить динамическую память.
Нужный массив: a,b,c,d.
В общем, никак не могу вникнуть в указатели, хотя довольно упорно пытаюсь. Саму суть я, вроде бы, уловил, но как реализовать предложенные задания понять не могу. Буду благодарен за помощь.
Решение задачи: «Указатели и динамическая память»
textual
Листинг программы
int _tmain() { int m,n,i,j; int *a; printf("Kolichestvo strok: "); scanf_s ("%d", &n); printf("Kolichestvo stolbcow: "); scanf_s ("%d", &m); a = (int*) malloc(n*m*sizeof(int)); for (i=0;i<n;i++) { for (j=0;j<m;j++){ printf("Vvedite element [%d,%d]\n", i, j); scanf_s("%d",(a+i*m+j) ); } } printf("MATRICA: \n"); for (i=0;i<n;i++) { for (j=0;j<m;j++){ printf("%d ", *(a+i*m+j));} printf("\n"); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные
m
,n
,i
,j
типаint
, а также переменнаяa
типаint*
и выделена динамическая память для массиваa
размеромn*m
(в строках и столбцах соответственно). - Пользователю предлагается ввести количество строк и столбцов матрицы.
- Затем пользователю предлагается ввести элементы матрицы, для чего используется два вложенных цикла. Внешний цикл выполняется
n
раз (по количеству строк), а внутренний -m
раз (по количеству столбцов). - В каждой итерации внутреннего цикла пользователю предлагается ввести элемент матрицы, и он сохраняется в соответствующем элементе массива
a
. - После ввода всех элементов матрицы выводится приглашение для ввода строки, и затем выводится сама матрица.
- Для вывода матрицы используется два вложенных цикла. Внешний цикл выполняется
n
раз (по количеству строк), а внутренний -m
раз (по количеству столбцов). При каждой итерации внутреннего цикла выводится текущий элемент матрицы. - После вывода матрицы программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д