Управление памятью низкого уровня
Оператор new — единственный способ создать объект или массив объектов с динамическим сроком жизни, то есть сроком жизни, не ограниченным областью, в которой он создан. Оператор new выделяет память, вызывая функцию выделения. Оператор delete уничтожает объект или массив, созданный оператором new, и вызывает функцию освобождения памяти. Функции выделения и освобождения памяти по умолчанию, вместе с связанными функциями, типами и объектами, объявлены в заголовочном файле <new>.
Определено в заголовочном файле <new> |
|
|---|---|
Функции |
|
| функции выделения памяти (функция) |
|
| функции освобождения памяти (функция) |
|
|
(C++11) | получает текущий обработчик new (функция) |
| регистрирует обработчик new (функция) |
|
Классы |
|
| исключение, выбрасываемое при неудачном выделении памяти (класс) |
|
|
(C++11) | исключение, выбрасываемое при выделении массива с неверной длиной (класс) |
|
(C++17) | тип, используемый для передачи выравнивания функциям выделения и освобождения памяти, учитывающим выравнивание (перечисление) |
Типы |
|
| тип указателя на функцию обработчика new (typedef) |
|
Объекты |
|
объект типа nothrow_t используется для выбора невыбрасывающей функции выделения (константа) |
|
|
(C++20) | объект типа std::destroying_delete_t, используемый для выбора перегрузок destroying-delete для operator delete (константа) |
Доступ к объектам |
|
|
(C++17) | барьер оптимизации указателя (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/new