[C con Clase] Memoria,memoria!!
Programante
programante en gmail.com
Mie Jun 20 23:44:05 CEST 2007
Pogui escribió:
> tenes que liberar la memoria con un bucle, si liberas el puntero lo
> unico que liberas es la memoria perteneciente al puntero, si lo que
> queres es liberar toda la cadena, tenes que liberar bloque por bloque
> hasta que termine la respectiva cadena.
> Espero ayudarte, salu2
> Pogui
>
Estás confundido, Pogui.
Cuando haces delete, libera toda la memoria del bloque, que será
el tamaño del objeto que liberas: sizeof(*puntero)
Cuando haces delete[], libera los n elementos creados en el new (ya se
encarga el compilador
de recordar cuantos creaste).
delete no elimina la memoria del puntero, el puntero está en la pila y
su espacio se recupera automáticamente.
Sólo tendríamos que liberar bloque por bloque si tuviéramos un array de
punteros a bloques por ejemplo.
O si estuviéramos liberando una lista enlazada...
Espero haberlo aclarado.
Más información sobre la lista de distribución Cconclase