Problem z usuwaniem całej listy dynamicznej
Ostatnio zmodyfikowano 2014-06-12 21:11
dziubeQ Temat założony przez niniejszego użytkownika |
Problem z usuwaniem całej listy dynamicznej » 2014-06-12 20:42:49 Nie do końca ogarniam listy, dlatego prosiłbym o konkretną odpowiedź. Mój kod zamieszczam poniżej, kiedy usunę listę i chce zapisać nową, wszystkie stare elementy w niej zostają i w miarę zapełniania nowymi elementami zapisują się od końca poprzedniej listy. void usunLISTE( lista *& head ) { lista * pom = head; if( pom ) { if( pom->next ) { while( pom->next->next ) pom = pom->next; free( pom->next ); pom->next = NULL; } else { free( pom ); head = NULL; } } }
|
|
pekfos |
» 2014-06-12 21:01:45 Użyj destruktorów. Wtedy wystarczy usunąć head i cała lista się usunie. Błędów w tym kodzie nie ma co wytykać, już sam pomysł jest zły. |
|
dziubeQ Temat założony przez niniejszego użytkownika |
» 2014-06-12 21:11:26 dzięki, napisałem tak i działa: void usunliste() { lista * aktualny, * nastepny; aktualny = poczatek; while( aktualny != NULL ) { nastepny = aktualny->next; delete aktualny; aktualny = nastepny; } poczatek = NULL; }
|
|
« 1 » |