Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] Eliminare nodo

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    178

    [C] Eliminare nodo

    Non so perché ma non riesco ad eliminare il nodo.

    Ecco la funzione che dovrebbe eliminare appunto il nodo che ha come valore il numero 0


    codice:
    void elabora2( ListaRipePtr *currentPtr2) {
    
    
         ListaRipePtr tempPtr;
    
    
         while( *currentPtr2 != NULL ) {
    
    
             if( (*currentPtr2)->volte == 0) {
                 tempPtr = *currentPtr2;
                 *currentPtr2 = (*currentPtr2)->next1Ptr;
                 free( tempPtr );
             }
             else {
                 *currentPtr2 = (*currentPtr2)->next1Ptr;
             }
         }
    }

    non so perché ma non mi visualizza la lista.

    Qualcuno mi può aiutare.
    Grazie.
    Ultima modifica di LeleFT; 07-08-2014 a 13:20 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    178
    mi scuso con i moderatori. Si tratta di programmazione in C

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da Bombonera Visualizza il messaggio
    mi scuso con i moderatori. Si tratta di programmazione in C
    Nessun problema, ho aggiunto io il linguaggio nel titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    178
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Nessun problema, ho aggiunto io il linguaggio nel titolo.


    Ciao.
    Grazie

  5. #5
    Quote Originariamente inviata da Bombonera Visualizza il messaggio
    Non so perché ma non riesco ad eliminare il nodo.

    Ecco la funzione che dovrebbe eliminare appunto il nodo che ha come valore il numero 0


    codice:
    void elabora2( ListaRipePtr *currentPtr2) {
    
    
         ListaRipePtr tempPtr;
    
    
         while( *currentPtr2 != NULL ) {
    
    
             if( (*currentPtr2)->volte == 0) {
                 tempPtr = *currentPtr2;
                 *currentPtr2 = (*currentPtr2)->next1Ptr;
                 free( tempPtr );
             }
             else {
                 *currentPtr2 = (*currentPtr2)->next1Ptr;
             }
         }
    }

    non so perché ma non mi visualizza la lista.

    Qualcuno mi può aiutare.
    Grazie.
    Il tipo della funzione è void. Cosa dovrebbe restituirti? Il nodo eliminato o la lista rimanente?

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Hai già un'altra discussione aperta per lo stesso problema: http://forum.html.it/forum/showthrea...readid=2913752
    Ad ogni modo: è rimasto il problema esposto nell'altra discussione, e a quello si è aggiunto che modificando la testa della lista direttamente nel main attraverso i puntatori, non riuscirai più ad accedere a nessun nodo in quanto, finita quella funzione, la variabile nel main sarà impostata a NULL.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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 © 2025 vBulletin Solutions, Inc. All rights reserved.