Middle
27
В чем разница умного указателя и обычного в C++?
Компании, где спрашивали
АТОМ
Ответ от нейросети
sobes.tech AI
Обычный указатель в C++ — это просто адрес в памяти, который не управляет временем жизни объекта. Программист сам отвечает за выделение и освобождение памяти, что может привести к утечкам или ошибкам двойного удаления.
Умный указатель — это класс-обёртка, который автоматически управляет временем жизни объекта. Например, std::unique_ptr владеет объектом и удаляет его, когда указатель выходит из области видимости. std::shared_ptr считает количество ссылок и удаляет объект, когда последний указатель уничтожается.
Пример с std::unique_ptr:
#include <memory>
void example() {
std::unique_ptr<int> ptr = std::make_unique<int>(42);
// ptr автоматически удалит объект при выходе из функции
}
Таким образом, умные указатели помогают избежать утечек памяти и ошибок управления ресурсами, делая код безопаснее и проще.