Динамический массив на языке Си
Динамический массив в языке программирования Си
Динамический массив в языке программирования Си является очень полезной структурой данных, которая позволяет создавать массивы переменного размера во время выполнения программы. Это отличается от статического массива, размер которого определяется на этапе компиляции.
Создание динамического массива в Си осуществляется с помощью функций стандартной библиотеки, таких как malloc() и realloc(). Функция malloc() предоставляет память для массива определенного размера, а функция realloc() может изменить размер уже существующего массива.
Давайте рассмотрим пример создания динамического массива в Си. Предположим, что мы хотим создать массив целых чисел, размер которого будет задаваться пользователем. Вначале нам понадобится объявить указатель на тип данных, который мы хотим использовать:
int* dynamicArray;
Затем мы можем запросить у пользователя желаемый размер массива:
int size;
printf("Введите размер массива: ");
scanf("%d", &size);
Далее мы можем использовать функцию malloc() для выделения памяти под наш динамический массив:
dynamicArray = (int*)malloc(size * sizeof(int));
Здесь мы выделяем память размером size * sizeof(int), чтобы предоставить необходимое количество памяти для хранения целых чисел.
После того, как мы создали динамический массив, мы можем работать с ним как с обычным массивом:
for (int i = 0; i < size; i++) {
dynamicArray[i] = i * 2;
}
for (int i = 0; i < size; i++) {
printf("%d ", dynamicArray[i]);
}
В этом примере мы заполняем наш динамический массив числами, умноженными на 2, и затем выводим его содержимое на экран.
После использования динамического массива, мы должны освободить выделенную под него память с помощью функции free():
free(dynamicArray);
Это необходимо для предотвращения утечки памяти и эффективного использования ресурсов компьютера.
Таким образом, динамический массив в языке программирования Си позволяет создавать массивы переменного размера во время выполнения программы. Это осуществляется с помощью функций malloc() и realloc(). Важно помнить, что после использования динамического массива необходимо освободить занимаемую им память с помощью функции free().