Originariamente inviato da oregon
Non ho provato tutto il codice ma in questa linea

while((curr!=NULL) && greater(inf,curr->info))

quando curr è uguale a NULL, curr->info ti darà un errore ... no ?
Se il compilatore è furbo e trova che curr è uguale a NULL salta direttamente alla prossima istruzione fuori dall' if, non è quello il problema.
Il problema credo sia molto prima:

codice:
int main()
{
	t_info inf;
	t_list lista=NULL;  //  lista è uguale a NULL
	int scelta=1;
	while(scelta!=0)
	{
		inf=read_info();
		lista=node_insert(lista,inf);  // cosa fa la node_insert?
		printf("Vuoi inserire un'altro nominativo? 1/0 \n");
		scanf("%d",&scelta);		
	}
	print_list(lista);
	printf("Quale nominativo vuoi cancellare?\n");
	inf=read_info();
	lista=node_delete(lista,inf);
	print_list(lista);
	return EXIT_SUCCESS;
}
La node_insert prevede il caso in cui il primo parametro passato sia NULL?