Динамический массив в языке программирования C
Динамический массив - это структура данных, которая позволяет динамически изменять размер массива во время выполнения программы. Это очень полезно, когда мы не знаем заранее точное количество элементов, которые нам потребуются.
В языке программирования C динамический массив можно создать с помощью использования функций malloc
и free
. Функция malloc
выделяет память для массива, а функция free
освобождает эту память после использования.
#include <stdio.h>
#include <stdlib.h>
int main() {
int n; // переменная для хранения количества элементов, указанного пользователем
int *arr; // указатель на динамический массив
// получаем количество элементов от пользователя
printf("Введите количество элементов: ");
scanf("%d", &n);
// выделяем память для динамического массива
arr = (int*)malloc(n * sizeof(int));
if (arr == NULL) {
printf("Не удалось выделить память для массива.\n");
return 1;
}
// заполняем массив случайными числами
for (int i = 0; i < n; i++) {
arr[i] = rand();
}
// выводим элементы массива на экран
printf("Элементы массива:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// освобождаем память, выделенную для массива
free(arr);
return 0;
}
В этом примере мы сначала объявляем переменную n
, в которой будет храниться количество элементов, указанное пользователем. Затем мы объявляем указатель arr
, который будет указывать на динамический массив.
С помощью функции scanf
мы получаем количество элементов от пользователя и сохраняем его в переменную n
. Затем мы используем функцию malloc
для выделения памяти для массива. Размер памяти, выделенной для массива, рассчитывается как n * sizeof(int)
, где sizeof(int)
- размер типа данных int
в байтах.
После выделения памяти мы проверяем, удалось ли выделить память для массива. Если указатель arr
равен NULL
, это означает, что выделение памяти не удалось, и мы выводим сообщение об ошибке.
Затем мы заполняем массив случайными числами с помощью функции rand
. И, наконец, мы выводим элементы массива на экран с помощью цикла for
и освобождаем память с помощью функции free
.
Динамический массив позволяет гибко изменять размер массива во время выполнения программы. Это очень полезно, когда нам необходимо работать с переменным количеством элементов. Однако необходимо помнить, что после использования динамического массива его память должна быть освобождена с помощью функции free
, чтобы избежать утечек памяти.