Оператор delete[]
Оператор delete[] освобождает память, которая ранее была выделена для динамического массива с помощью оператора new[]. Он принимает один параметр - указатель на начало массива, память которого нужно освободить. Важно использовать именно delete[] для массивов, а не обычный delete, иначе поведение программы будет неопределенным. После освобождения памяти указатель становится недействительным, и его дальнейшее использование может привести к ошибке.
Синтаксис
delete[] ptr;
Пример
Давайте выделим память для массива из 5 целых чисел, заполним его значениями и затем освободим память с помощью оператора delete[]:
#include <iostream>
using namespace std;
int main()
{
int* arr = new int[5];
for (int i = 0; i < 5; i++)
{
arr[i] = i + 1;
}
for (int i = 0; i < 5; i++)
{
cout << arr[i] << " ";
}
cout << endl;
delete[] arr;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Пример
Давайте выделим память для массива строк, выведем их на экран и освободим память:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string* arr = new string[3];
arr[0] = "abcde";
arr[1] = "12345";
arr[2] = "hello";
for (int i = 0; i < 3; i++)
{
cout << arr[i] << endl;
}
delete[] arr;
return 0;
}
Результат выполнения кода:
"abcde"
12345
"hello"