Salve a tutti, ho un problema con l'inserimento di un nuovo nodo in coda ad una lista.
Una volta lanciato, appena inserisco il valore, il programma non risponde più, ed esce il classico messaggio "l'applicazione ha smesso di funzionare".
Ho isolato la funzione dal programma principale, ad un nuovo codice, ma la storia è la stessa.
Spero possiate darmi una mano voi. Questo è il codice:
codice:
#include <stdio.h>
#include <stdlib.h>
struct nodo { /* dichiarazione struttura nodo */
int dato; // campo dell'informazione
struct nodo *next; // campo dell'indirizzo del nodo successivo
};
nodo *head; // dichiarazione del nodo di testa
int n; // dato da inserire
nodo *nuovo; // nuovo nodo
nodo *p; // puntatore indice
int main()
{
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");
return 0;
}
Grazie a tutti in anticipo.