Нужен пример использования динамической памяти - C (СИ)

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

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

Привет всем, помогите, пожалуйста, разобраться с функциями типа malloc, realloc и т.п. Просто стояла задача такая: отсортировать массив одним способом. Все замечательно, но преподаватель вводит размер массива 2 миллиона и все падает Говорит, что надо использовать дин. память. я понимаю, что делают эти функции, однако на практике применять не приходилось. Не могли бы скинь пример каких-то полярограмм?

Решение задачи: «Нужен пример использования динамической памяти»

textual
Листинг программы
a = (int*)malloc(size * sizeof(int));
 
    
        for (i=0; i<size; ++i)
        {
            a[i]=i ; //rand()%15 -6 ;
            printf ("%i ", a[i]);
        }
        printf ("\n\n");
 
        // тут меняю местами первый второй, третий и четвертый эл. местами  
 
        for (i=0; i<size; ++i)
        {
            removal = a[i * 2 + 1];
            a[i * 2 + 1] = a[i * 2];
            a[i * 2] = removal;
 
            printf ("%i ", a[i]);
        }

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

Примерный разбор кода:

  1. a = (int*)malloc(size * sizeof(int)); - выделение памяти под массив a размером size с помощью функции malloc().
  2. for (i=0; i<size; ++i) - цикл по всем элементам массива a.
  3. a[i]=i - присваивание каждому элементу массива его индекса.
  4. printf (%i , a[i]); - вывод значения каждого элемента массива через пробел.
  5. \n\n - переход на новую строку.
  6. for (i=0; i<size; ++i) - цикл по всем элементам массива a.
  7. removal = a[i * 2 + 1]; - временное хранение значения элемента с индексом i * 2 + 1 в переменной removal.
  8. a[i * 2 + 1] = a[i * 2]; - обмен значениями элементов с индексами i * 2 + 1 и i * 2.
  9. a[i * 2] = removal; - обмен значениями элементов с индексами i * 2 и i * 2 + 1.
  10. printf (%i , a[i]); - вывод значения каждого элемента массива через пробел.

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


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

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

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