Avevo fatto confusione con le variabili, al posto di prec ci va curr. Ho sostituito e adesso non mi da più il segementation fault ma nella seconda stampa la lista apparare così come l'ho letta, ovvero non mi cancella l'elemento che ho richiesto di cancellare!Originariamente inviato da Caiodark
Il secondo if non si verificherà mai perché se prec è null non entra nemmeno nel blocco, sicuro dell'algoritmo?
@oregon per quanto riguarda il problema della doppia condizione nell'if, io sapevo che se la prima non era verificata saltava direttamente oltre; comunque ho provato anche a dividere gli if e non cambia nulla, quindi penso che il mio compilatore si comporti in modo " furbo "( per la cronaca, uso geany ).
edit:
@ who am I
codice:t_list node_insert(t_list lista,t_info inf) { t_node *succ=lista; t_node *prec=NULL; t_node *new_node; while(succ!=NULL && greater(inf,succ->info)) { prec=succ; succ=succ->link; } new_node=node_create(inf); if(new_node==NULL) { printf("Errore nell'allocazione della memoria\n"); exit(1); } else { if(prec==NULL) { new_node->link=lista; return new_node; } else { new_node->link=succ; prec->link=new_node; return lista; } } }

( per la cronaca, uso geany ).
Rispondi quotando