E' vero, dopo il while l' elemento contenuto in curr deve essere maggiore o uguale a inf.
Per cui quell' if va bene.
Però penso che non ci entra comunque in quel blocco di codice.Prova ad aggiungere una fprintf di debug per verificarlo:
codice:
t_list node_delete(t_list lista,t_info inf)
{
t_node* prec=NULL;
t_node* curr=lista;
while((curr!=NULL) && greater(inf,curr->info))
{
prec=curr;
curr=curr->link;
}
if(prec!=NULL && equal(inf,curr->info))
{
fprintf(stderr,"Se stampa questa riga è entrato nell' if");
if(prec==NULL)
{
lista=curr->link;
}
else
{
prec->link=curr->link;
}
free(curr);
return lista;
}
return lista;
}
@oregon: Ma io parlavo dell' if.