Динамическое выделение памяти под одномерный массив - 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));

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

В представленном коде выполняется динамическое выделение памяти под одномерный массив. Эта операция выполняется следующим образом:

  1. Объявляется переменная array типа int* (указатель на целое число). Эта переменная будет использоваться для хранения адреса первого элемента массива.
  2. В цикле for с переменной i от 0 до n-1 (где n - размер массива) выполняется следующее: a. С помощью оператора scanf происходит чтение целочисленного значения в элемент массива. В первом случае scanf вызывается с аргументом array[i], что означает, что он будет читать значение и записывать его в элемент массива с индексом i. Во втором случае scanf вызывается с аргументом (array+i), что означает, что он будет читать значение и записывать его в элемент массива, на который указывает array с добавлением i (то есть array увеличивается на i перед вызовом scanf). Таким образом, в цикле происходит чтение n целочисленных значений и их запись в массив.

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


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

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

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