[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