Как создать динамический массив в C
Динамический массив является удобным инструментом для работы с коллекциями данных переменного размера в языке программирования C . В отличие от статического массива, его размер можно изменять в процессе выполнения программы.
Создание массива
Для создания динамического массива в C необходимо использовать оператор new
и указать размер массива. Оператор new
выделяет память в динамической памяти и возвращает указатель на выделенную память.
int size 10; // размер массива
int* arr new int[size]; // создание динамического массива
В данном примере создается динамический массив arr
типа int
с размером size
.
Выделение памяти
Оператор new
выделяет память в динамической памяти для указанного типа данных и возвращает указатель на первый элемент массива. Размер памяти, выделенной под массив, зависит от размера каждого элемента и количества элементов.
Элементы массива
Элементы динамического массива можно обращаться по индексам, точно так же как и в статическом массиве. Например, чтобы получить доступ к элементу массива по индексу, нужно использовать следующую конструкцию⁚
arr[index] value; // присваивание значения элементу массива с индексом index
int element arr[index]; // получение значения элемента массива с индексом index
Изменение размера массива
Для изменения размера динамического массива необходимо создать новый массив с новым размером и скопировать в него элементы из старого массива. Затем освободить память, выделенную под старый массив, с помощью оператора delete
. Например, чтобы увеличить размер массива до нового значения newSize
, можно использовать следующий код⁚
int newSize 20; // новый размер массива
int* newArr new int[newSize]; // создание нового массива с новым размером
// копирование элементов из старого массива в новый
for (int i 0; i < size; i ) {
newArr[i] arr[i];
}
delete[] arr; // освобождение памяти, выделенной для старого массива
arr newArr; // присваивание нового массива указателю arr
size newSize; // обновление размера массива
В данном примере создается новый массив newArr
с новым размером newSize
. Затем выполняется копирование элементов из старого массива arr
в новый массив, освобождается память, выделенная под старый массив, и обновляется размер массива.
Управление памятью
При работе с динамическим массивом важно правильно управлять памятью для предотвращения утечек памяти. После использования динамического массива необходимо освободить выделенную память с помощью оператора delete
. Для освобождения памяти, выделенной для массива, используется синтаксис delete[]
.
delete[] arr; // освобождение памяти, выделенной для массива arr
Использование динамического массива позволяет эффективно управлять памятью и создавать массивы переменного размера в C . С помощью операторов new
и delete
можно выполнять выделение и освобождение памяти для работы с динамическими массивами.