/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

liberar memoria en lista ligada

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
jacintolucas



Registrado: 06 Mar 2014
Mensajes: 5

MensajePublicado: 14/03/2014 5:49 pm
Título: liberar memoria en lista ligada

Hola buenas noches.

Primero que nada gracias por la ayuda proporcionada, les agradezco mucho.

Tengo una lista ligada, y le hago lo siguiente:

1.- La lleno de datos
2.- La despliego en pantalla de la siguiente forma:
while (ptr != NULL) {
printf("dato %d", ptr->dato);
ptr = ptr->link;
}

La pregunta es: ¿debo liberar la memoria utilizada por ptr con free(ptr) después de desplegarla o ya no es necesario?



De antemano muchas gracias por su ayuda.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7527
Ubicación: Mexico

MensajePublicado: 15/03/2014 7:39 am
Título:

La memoria se debe liberar cuando ya no sea necesaria, en tu caso cuando ya no utilices la lista.

Lo usual es colocar el bucle que libera la memoria de la lista justo al final de la función main:
Código:
#include <stdio.h>
#include <stdlib.h>

struct node {
   int dato;
   struct node *link;
};

/* ... */

int main(void)
{
   struct node *ptr = NULL; /* Puntero al primer nodo */
   struct node *link;       /* Puntero auxiliar */
   
   /* ... */
   
   /* Se libera la memoria utilizada por cada nodo */
   while (ptr != NULL){
      link = ptr->link;
      free(ptr);
      ptr = link;
   }
   
   return EXIT_SUCCESS;
}


Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com