incomincia a chiudere la graffa del main.

con:
codice:
struct alunno
    {
       char nome[20];
       char cognome[20];
       int eta;

    }alunno;
hai definito una variabile locale il cui identificatore è "alunno" il cui tipo è "struct alunno";

quindi con
codice:
alunno *next;
il compilatore non sa che fare, e giustamente stronca la compilazione (in particolare cerca di moltiplicare la variabile "alunno" con "next").