Salve a tutti
Ho un problema nel funzionamento del mio programma fatto in C. Il codice è il seguente :
codice:
void inserisci (int mat, alunno *head){
alunno *nuovo; //puntatore al nuovo alunno
nuovo = (alunno *) malloc(sizeof(alunno)); //alloco la memoria necessaria per inserire
alunno->matricola = mat;
alunno->next = head; //inserisco in testa alla lista
head = alunno;
}
void scorrilista(alunno *head){
alunno *corr;
int controlla = 0;
corr = head;
while(corr){
printf("%d mat corrente \n", corr->matricola);
corr = corr->next;
controlla++;
}
}
main()
alunno *testa;
testa = NULL;
La struttura dati è corretta, i campi ci sono tutti e l'inserimento viene fatto senza problemi. Il problema nasce quando vado a scorrere la lista. Il programma v in crash generndo un errore relativo alla memoria.
La domanda che vi pongo è : sbaglio a settare i due puntatori nella funzione di inserimento, oppure sbaglio a creare la lista?
Attendo un vostro aiuto :-)