Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z usuwaniem całej listy dynamicznej

Ostatnio zmodyfikowano 2014-06-12 21:11
Autor Wiadomość
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.

C/C++
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;
        }
    }
}
P-112003
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.
P-112009
dziubeQ
Temat założony przez niniejszego użytkownika
» 2014-06-12 21:11:26
dzięki, napisałem tak i działa:
C/C++
void usunliste() {
    lista * aktualny, * nastepny;
    aktualny = poczatek;
    while( aktualny != NULL ) {
        nastepny = aktualny->next;
        delete aktualny;
        aktualny = nastepny;
    }
    poczatek = NULL;
}
P-112012
« 1 »
  Strona 1 z 1