Динамическая память
С++ использует методы работы с динамической памятью при помощи операторов new и delete:
- new — для выделения памяти;
- delete — для освобождения памяти.
Оператор new используется в следующих формах:
- new тип; — для переменных
- new тип[размер]; — для массивов
Память может быть выделена за пределами нашей программы для одного объекта или для массива любого типа, в том числе типа, определенного пользователем. Результатом выполнения операции new будет указатель на отведенную память, или нулевой указатель в случае ошибки.
#include <iostream>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");
int* i=new int;//Выделение динамической памяти
*i=10;//Присваивание значения
cout << *i << " - адрес: " << i << endl;//10 - адрес: ax2c74b0
delete i;//Освобождение памяти
i=0;//Затираем ссылку на дин. память или i=NULL;
system("pause");//Команда задержки экрана
return 0;
}
Оператор delete должен быть обязательно, чтобы не допустить утечки памяти.