Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    residenza
    Torino
    Messaggi
    8

    [C++] Eliminazione di una intera lista

    Come da titolo vorrei eliminare una lista intera. Il codice è questo

    codice:
    temp1=start;
    while(temp1->next!=NULL){
        temp=temp1;
        temp1=temp1->next;
        delete temp;
    }
    start=NULL;
    Se però stampo a video la lista mi crasha, quando invece dovrebbe solamente stamparmi nulla.
    La logica del ciclo dovrebbe essere corretta, salvo il puntatore lo elimino e così via, vero?!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Stampi in questo ciclo o con un'altra funzione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    residenza
    Torino
    Messaggi
    8
    stampo in un'altra funzione
    codice:
    void Stampa::stampaLista(){
    Node *tmp;
    
    tmp=start;
    
        while(tmp->next!=NULL){
            cout<<tmp->getData();
            tmp=tmp->next;
        }
        cout<<tmp->getData();
    }
    Ultima modifica di Kriac; 03-07-2014 a 11:54

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ancora non ho capito .... L'errore l'hai nella funzione di stampa o in questa che mostri?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    residenza
    Torino
    Messaggi
    8
    scusami ho sbagliato a scrivere il messaggio precedente...comunque nel momento in cui richiamo stampaLista()...cioè se la mia lista dopo averla eliminata è data solamente da start che punta a NULL, nel momento in cui cerco di stamparla a video cosa dovrebbe accadere?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non dovrebbe visualizza niente. Ma il tuo codice di stampa ha un problema ... tenta di esaminare il puntatore next di tmp (che è il puntatore di partenza della lista)


    while(tmp->next!=NULL){

    Capirai che, se la lista è vuota, già tmp è NULL e quindi un tentativo di accedere a tmp->next genera un errore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.