Веб-версияОткрыть в Telegram

ПостПочему unique_ptr::release() может оставить объект в памяти навсегда?

6 октября 2026
C
C/C++ Ready | Программирование
Фотография
нажмите — покажем
Почему unique_ptr::release() может оставить объект в памяти навсегда? Обычно unique_ptr удаляет объект, когда владелец выходит из области видимости. Это одна из причин, почему его удобно возвращать из функций и хранить в классе: auto ptr = std::make_unique<Widget>(); Но у unique_ptr есть метод release. Название звучит так, будто он освобождает память: ptr.release(); На самом деле release освобождает unique_ptr от владения объектом. Он возвращает обычный указатель и оставляет ответственность за удаление вызывающему коду. Если результат проигнорировать, объект больше никто не удалит. Когда нужен только временный доступ без передачи владения, используйте get: Widget* borrowed = ptr.get(); use(*borrowed); ptr по-прежнему владеет объектом. Сохранить borrowed после уничтожения ptr нельзя, зато вручную удалять его тоже не нужно. Если объект нужно уничтожить прямо сейчас, подойдет reset: ptr.reset(); После reset указатель станет пустым, а объект будет удалён через deleter, который хранит unique_ptr. Это не то же самое, что release. Когда другая функция принимает unique_ptr, передайте владение явно: consume(std::move(ptr)); get берёт указатель на время, reset удаляет объект, release отдаёт ответственность вам. 📣 C++ Ready | #совет
11 · 959 ·

Рядом в ленте

CC/C++ Ready | ПрограммированиеМожно ли собирать обычные C++-приложения в браузере? Автор описывает систему, где прямо в браузере работает набор инструментов для сборки нативных приложений поCC/C++ Ready | Программирование⚡️ Полный стек специалиста по кибербезопасности в одном бандле Хватит собирать знания по крупицам. Мы объединили 5 флагманских прикладных курсов CyberYozh Acade
это сообщение
CC/C++ Ready | ПрограммированиеC/C++ Ready | Программирование@cpp_ready · канал · Технологии
15 601подписчиков2 259средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем