Sobes.tech
Middle

Qual é a diferença entre um ponteiro inteligente e um ponteiro normal em C++?

sobes.tech IA

Resposta da IA

Um ponteiro comum em C++ é simplesmente um endereço na memória que não gerencia o tempo de vida do objeto. O programador é responsável por alocar e liberar memória, o que pode levar a vazamentos ou erros de dupla liberação.

Um ponteiro inteligente é uma classe envoltória que gerencia automaticamente o tempo de vida do objeto. Por exemplo, std::unique_ptr possui o objeto e o remove quando o ponteiro sai do escopo. std::shared_ptr conta o número de referências e remove o objeto quando o último ponteiro é destruído.

Exemplo com std::unique_ptr:

#include <memory>

void exemplo() {
    std::unique_ptr<int> ptr = std::make_unique<int>(42);
    // ptr removerá automaticamente o objeto ao sair da função
}

Assim, os ponteiros inteligentes ajudam a evitar vazamentos de memória e erros na gestão de recursos, tornando o código mais seguro e simples.