Динамический массив – это структура данных‚ которая позволяет создавать массив переменного размера во время выполнения программы. В отличие от статического массива‚ размер динамического массива может быть изменен в процессе работы программы.
Создание и инициализация динамического массива включает в себя несколько шагов⁚
1. Выделение памяти
Первым шагом при создании динамического массива является выделение памяти‚ которая будет хранить элементы массива. Для этого используется оператор new
‚ который выделяет блок памяти.
#include nlt;iostreamngt;
int main {
int* arr; // объявляем указатель на массив
int size 5; // задаем размер массива
arr new int[size]; // выделяем память
// код работы с массивом
delete[] arr; // освобождаем память
return 0;
}
2. Инициализация элементов
После выделения памяти для динамического массива необходимо проинициализировать его элементы. Это можно сделать с помощью цикла или при помощи стандартных алгоритмов.
#include nlt;iostreamngt;
#include nlt;algorithmngt;
int main {
int* arr;
int size 5;
arr new int[size];
// инициализация элементов при помощи цикла
for (int i 0; i nlt; size; i ) {
arr[i] i 1;
}
// или инициализация элементов при помощи алгоритма
std⁚⁚fill(arr‚ arr size‚ 0);
// код работы с массивом
delete[] arr;
return 0;
}
3. Доступ к элементам
Доступ к элементам динамического массива осуществляется через их индексы. Индексы элементов начинаются с 0 и заканчиваются на размер минус 1.
#include nlt;iostreamngt;
int main {
int* arr;
int size 5;
arr new int[size];
for (int i 0; i nlt; size; i ) {
arr[i] i 1;
}
// доступ к элементам массива
for (int i 0; i nlt; size; i ) {
std⁚⁚cout nlt;nlt; arr[i] nlt;nlt; ″ ″;
}
delete[] arr;
return 0;
}
4. Изменение размера
Изменение размера динамического массива возможно при помощи перераспределения памяти. Для этого сначала создается новый массив нужного размера‚ затем в него копируются элементы из старого массива‚ после чего освобождается память‚ выделенная под старый массив.
#include nlt;iostreamngt;
#include nlt;algorithmngt;
int main {
int* arr;
int size 5;
arr new int[size];
for (int i 0; i nlt; size; i ) {
arr[i] i 1;
}
// увеличение размера массива
int newSize 10;
int* newArr new int[newSize];
std⁚⁚copy(arr‚ arr size‚ newArr);
delete[] arr;
arr newArr;
size newSize;
// код работы с массивом
delete[] arr;
return 0;
}
Таким образом‚ создание и инициализация динамического массива включает в себя выделение памяти‚ инициализацию элементов‚ доступ к элементам и возможность изменения размера. При использовании динамического массива необходимо помнить о правильной работе с памятью и освобождении ее после использования.