Операция new, выполненная на некоторым типом, резервирует
место в свободной памяти (в кучке), необходимое для хранения значения этого
типа. Результатом операции является адрес выделенной памяти или 0, если
выделить память не удалось. Тип результата - "указатель на базовый тип”.
Замечание. Standart C++ выбрасывает
исключение в случае невозможности выделить память. Исключения будут обсуждаться
позже.
Пример. Выделение памяти для вещественного числа.
float* pf;
pf = new
float;
// или
float* pf =
new float;
После того, как свободная память выделена, ею можно пользоваться
при помощи операции разыменования.
*pf = 3.14;
float f =
*pf + 1.414;
Операция new не инициализирует выделенную память, т.е. не заполняет ее
никакими значениями. Если нужна инициализация, ее надо выполнять явно.
float*
pf = new float(0); // заполнение нулем
Когда надобность в выделенной памяти отпадает, ее надо
освободить при помощи операции delete.
delete pf;
Источник: http://www.cplus-plus.ru |