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