Hay
una regla de oro cuando se usa memoria dinámica, toda
la memoria que se reserve durante el programa hay que liberarla
antes de salir del programa.
No
seguir esta regla es una actitud muy irresponsable, y en la mayor
parte de los casos tiene consecuencias desastrosas. No os fieis
de lo que diga el compilador, de que estas variables se liberan
solas al terminar el programa, no siempre es verdad.
Veremos
con mayor profundidad los operadores "new" y "delete"
en siguientes capítulos.
Y
mucho cuidado: si pierdes un puntero a una variable reservada dinámicamente,
no podrás liberarla.
Es
imposible liberar la primera reserva de memoria dinámica.
Si no la necesitábamos habría que liberarla antes
de reservarla otra vez, y si la necesitamos, hay que guardar su
dirección, por ejemplo con otro puntero.
|