Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/11/2010, 09:10
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Perdida de Memoria en C

No es ínfimo si tenés un bucle o un algoritmo recursivo que se llama a sí mismo cientos de veces.

En C++, asignar memoria para guardar 10 enteros (un vector)
int* vector = new int[10];

Si luego no se hace

delete[] vector;

y se hace algo como

vector = otropuntero;

la memoria reservada por la llamada a new sigue estando asignada al programa, ningún otro programa en la computadora puede usarla, pero mi programa ya no tiene forma de referenciar a ella y liberarla, porque la única referencia que tenía ahora apunta a otra cosa.

Una vez que no tenés más referencias, ya no se puede liberar esa memoria, se liberará cuando el programa termine. Por eso es muy importante usar delete (free) cada vez que se pide memoria con new (malloc).