Originariamente inviato da Vyse220
Per evitare di creare confusione adesso posto tutto il codice e spiego meglio.
Bene ...

Io ti consiglierei di modificare la funzione in questo modo

codice:
struct alunno* carica()
{
   struct alunno * t;
   FILE *p = fopen("file.txt", "r");
   
   char nome[20];
   char cognome[20];
   char titolo[30];

   fscanf(p, "%s %s %s", nome, cognome, titolo);
   while (!feof(p))
   {
      t = ins_ord(t, nome, cognome, titolo);
      fscanf(p, "%s %s %s", nome, cognome, titolo);
   }

   fclose(f);

   return(t);
}
Usa un handle locale per il file e chiudilo.