Sobes.tech
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 автоматически удалит объект при выходе из функции
}

Таким образом, умные указатели помогают избежать утечек памяти и ошибок управления ресурсами, делая код безопаснее и проще.