Originariamente inviato da Caiodark
Il secondo if non si verificherà mai perché se prec è null non entra nemmeno nel blocco, sicuro dell'algoritmo?
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!

@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;
		}
	}
}