Código
/Definicion de la estructura lista doble typedef struct tnodo *pnodo; typedef struct tnodo{ int dato; pnodo sig; pnodo ant; }; typedef struct tlista{ pnodo inicio; pnodo final; }; //Porque se libera asi la memoria void liberar_lista(tlista &lista) { pnodo borrado; while(lista.inicio!=NULL){ borrado=lista.inicio; lista.inicio=borrado->sig; borrado->sig=NULL; borrado->ant=NULL; delete(borrado); } } //Y no asi?? void liberar_lista(tlista &lista) { pnodo borrado; while(lista.inicio!=NULL){ borrado=lista.inicio; lista.inicio=borrado->sig; lista.inicio->ant=NULL; borrado->sig=NULL; delete(borrado); } }