Динамическое выделение памяти под одномерный массив - C (СИ)
Формулировка задачи:
В общем, вопрос такой.
Пусть нам нужно задать массив, используя динамическое выделение памяти. Как это сделать?
Расскажу свой ход мыслей, а вы скажите прав я или нет.
В начале мы задаём указатель на тип данных, после вводим количество необходимых элементов под массив.
Далее резервируем память, используя функцию malloc. (Количество элементов*размер типа данных) Таким образом получаем, сколько будет весить наш массив. Потом путём получения адресов i-ого элемента заполняем массив.
Фрагмент кода:
int *array, i,j, n; int Min, Max=0, sum=0, proizv=1,temp,imin; printf("Введите необходимое количество элементов массива:"); scanf("%d",&n); array=(int*)malloc(n*sizeof(int));// указатель на целый тип, в котором применяется функция malloc, подсчитывающая необходимое количество памяти в байтах под размерность массива for(i=0;i<n;++i) { printf("[%d]=",i); scanf("%d",&array[i]);// вывод i-ого числа элементов массива под зарезервированную системой память }
Решение задачи: «Динамическое выделение памяти под одномерный массив»
textual
Листинг программы
scanf("%d",&array[i]); scanf("%d", (array+i));
Объяснение кода листинга программы
В представленном коде выполняется динамическое выделение памяти под одномерный массив. Эта операция выполняется следующим образом:
- Объявляется переменная
array
типаint*
(указатель на целое число). Эта переменная будет использоваться для хранения адреса первого элемента массива. - В цикле
for
с переменнойi
от 0 доn-1
(гдеn
- размер массива) выполняется следующее: a. С помощью оператораscanf
происходит чтение целочисленного значения в элемент массива. В первом случаеscanf
вызывается с аргументомarray[i]
, что означает, что он будет читать значение и записывать его в элемент массива с индексомi
. Во втором случаеscanf
вызывается с аргументом(array+i)
, что означает, что он будет читать значение и записывать его в элемент массива, на который указываетarray
с добавлениемi
(то естьarray
увеличивается наi
перед вызовомscanf
). Таким образом, в цикле происходит чтениеn
целочисленных значений и их запись в массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д