Создание динамического массива в C
Динамический массив ⎯ это массив‚ размер которого может изменяться во время выполнения программы. Создание и работа с динамическими массивами требует управления памятью‚ что дает программисту большую гибкость при работе с данными.
Выделение памяти для динамического массива
Перед использованием динамического массива необходимо выделить память для него. Это делается с помощью оператора new. Например‚ чтобы создать динамический массив из 10 целых чисел‚ используется следующий код⁚
cpp
int *arr new int[10];
В данном примере‚ оператор new выделяет память для 10 элементов типа int и возвращает указатель на первый элемент массива. Затем этот указатель мы присваиваем переменной arr.
Инициализация динамического массива
После создания динамического массива‚ его элементы нужно инициализировать. Для этого можно использовать цикл⁚
cpp
for (int i 0; i < 10; i ) {
arr[i] i;
}
В данном примере‚ каждый элемент массива будет содержать значение‚ равное его индексу.
Доступ к элементам динамического массива
Для доступа к элементам динамического массива можно использовать индексацию. Например‚ чтобы получить значение пятого элемента массива‚ можно написать arr[4]
.
Изменение размера динамического массива
Если требуется изменить размер динамического массива‚ необходимо выполнить следующие действия⁚
- Выделить новую память под новый массив с нужным размером.
- Скопировать элементы из старого массива в новый.
- Освободить память‚ занятую старым массивом.
- Указатель на новый массив присвоить переменной‚ которая использовалась для хранения старого массива.
cpp
int *newArr new int[20];
for (int i 0; i < 10; i ) {
newArr[i] arr[i];
}
delete[] arr;
arr newArr;
В данном примере‚ создается новый массив newArr размером 20 элементов. Затем выполняется копирование элементов из старого массива arr в новый‚ и освобождается память старого массива. Наконец‚ указатель на новый массив присваивается переменной arr.
Удаление динамического массива
После окончания работы с динамическим массивом‚ необходимо освободить память‚ занятую этим массивом. Это делается с помощью оператора delete[]⁚
cpp
delete[] arr;
Важно помнить‚ что после освобождения памяти‚ указатель arr будет являться недействительным‚ и его использование может привести к непредсказуемым последствиям.
Динамические массивы предоставляют программисту большую гибкость при работе с данными. Создание‚ инициализация‚ изменение размера и удаление динамического массива ౼ важные аспекты при работе с ним. Знание алгоритмов работы с массивами и управление памятью позволяют более эффективно использовать динамический массив в своих программах.