Inserisci una fprintf per vedere se il blocco di codice dell' if viene eseguito:
Se non vengono stampati gli asterischi significa che non entra nell' if, e che la parte da correggere è quella precedente.codice:TList Ricerca_Nodo_Da_Eliminare(TList lista, char nome[]){ TNode *prec=NULL, *curr=lista; while(curr!=NULL && strcmp(nome, curr->info.nome)>0){ prec=curr; curr=curr->next; } if((curr!=NULL) && strcmp(curr->info.nome, nome)==0){ fprintf(stderr," **** "); if(prec==NULL) lista=curr->next; else prec->next=curr->next; Elimina_Nodo(curr); } return lista; }
In tal caso prova a stampare tutti i risultati delle strcmp eseguite.

Rispondi quotando