PDA

Visualizza la versione completa : [C] Eliminare nodo


Bombonera
07-08-2014, 12:35
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




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.

Bombonera
07-08-2014, 13:51
mi scuso con i moderatori. Si tratta di programmazione in C

LeleFT
07-08-2014, 13:54
mi scuso con i moderatori. Si tratta di programmazione in C

Nessun problema, ho aggiunto io il linguaggio nel titolo.


Ciao. :ciauz:

Bombonera
07-08-2014, 14:04
Nessun problema, ho aggiunto io il linguaggio nel titolo.


Ciao. :ciauz:

Grazie :)

fabio.beginner
12-08-2014, 20:27
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




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?

Scara95
12-08-2014, 23:43
Hai già un'altra discussione aperta per lo stesso problema: http://forum.html.it/forum/showthread.php?threadid=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.

Loading