Операторы new и delete

Оператор new

Оператор new выделяет динамическую память и возвращает указатель соответствующего типа на эту область памяти. Общая форма записи этого оператора такова.

Копировать
p_var = new тип;
Здесь p_var — это переменная указателя, которая будет принимать адресс выделенной памяти, а элемент тип представляет собой тип данных, которые будут храниться в этой памяти. Например.
Копировать
double *p;
p = new double;

Если запрос на выделение памяти не удовлетворяеться, возбуждаеться исключение bad_alloc.

Инициализировать выделеную память можно, задав инициализатор ми использовав при этом следующую форму записи.

Копировать
p_var = new тип (инициализатор);
Здесь инициализатор — это значение, которое будет присвоено выделеной памяти.

Чтобы выделить память для одномерного массива используйте следующую общую форму.

Копировать
p_var = new тип[размер];
Здесь элемент размер указывает длину массива. При выделении массивов инициализация на производиться.

Оператор delete

Оператор delete освобождает память, на которую указывает аргумент. Эта память предварительно должна быть выделена с помощью оператора new. Общая форма оператора delete следующая.

Копировать
delete p_var;
Здесь p_var — это указатель на ранее выделеную память.

Чтобы освободить массив, который был выделен с помощью оператора new, можно использовать следующую форму записи.

Копировать
delete [] p_var