codice:
head = NULL;// creazione della lista
printf ("\n Nuovo inserimento: ");
scanf ("%d",&n);// leggi numero da inserire
nuovo =(nodo*)malloc(sizeof(struct nodo));//alloca nuovo nodo
nuovo->dato = n;// inserisci N in nodo.dato
nuovo->next= NULL;// NUOVO punta a NULL.
p=head;// P punta al nodo di testa
while(p != NULL)// finché la lista non è finita
{ p = p->next;}// P punta la nodo successivo
p->next= nuovo;// l'ultimo nodo punta a NUOVO
system("pause");
return0;
p=head; head è NULL , p = head= NULL
p->next= nuovo; QUI stai facendo questa operazione su NULL ERRORE
comunque è sbagliata , in ogni caso , dopo il while p , ANCHE contenendo una lista ,
sarebbe NULL
quindi dovrebbe essere , while(p ->next!= NULL)
P.S. Non si può creare una lista , con un solo nodo , sarebbe solo una struttura , occorrono almeno 2 nodi 