Vazamento de memória
Origem: Wikipédia, a enciclopédia livre.
Memory leak, ou vazamento de memória, é um fenômeno que ocorre em sistemas computacionais quando uma porção de memória, alocada para uma determinada operação, não é liberada quando não é mais necessária. A ocorrência de vazamentos de memória é quase sempre relacionada a erros de programação e pode levar a falhas no sistema se a memória for completamente consumida.
Exemplo [editar]
O exemplo abaixo, escrito na linguagem de programação C, mostra um programa de computador que possui um vazamento de memória. Após algum tempo de execução este programa irá consumir toda a memória disponível e irá falhar.
#include <stdio.h> #include <stdlib.h> void f(void){ void* s; s = malloc(50); /* obtém a memória */ return; /* memory leak - ver nota abaixo */ /* * A [[Memória (computador)|memória]] é obtida e disponibilizada em s. * Após o retorno da [[subrotina|função]], o [[Ponteiro (programação)|ponteiro]] é destruído e * perde-se a referência a esta porção de memória. * * Este código pode ser consertado se a função f() incluir * a operação "free(s)" antes do retorno ou se o código * que chama f() fizer a chamada para a operação free(). */ } int main(void){ /* Este ''loop'' infinito chama a função f(), definida acima */ while (1) f(); /* Cedo ou tarde a chamada à função irá falhar, devido à um um erro de alocação na função malloc, quando a memória terminar.*/ return 0; }