C++ · Essencial · Português · Técnico
vazamento de memória
Memória alocada dinamicamente que nunca é liberada, porque o último ponteiro para ela se perdeu ou o delete foi esquecido. O consumo cresce enquanto o programa roda.
Onde usar
Aparece em serviços de longa duração que vão ocupando RAM até serem reiniciados. Ferramentas como AddressSanitizer e Valgrind apontam onde a alocação foi feita.
Em código
void vaza(bool cedo) {
int* p = new int(5);
if (cedo) return; // p nunca é liberado
delete p;
}Exemplos
O serviço ficou três dias no ar e foi reiniciado por causa de um vazamento de memória.
O AddressSanitizer apontou um vazamento de memória nessa função.
Cuidado
Não é o mesmo que uso alto de memória: vazamento é memória que ninguém mais vai liberar.
Sinônimos
memory leak