Ecco il codice che mi dà errore.

codice:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct {
        char Cognome[20];
        char Nome[20];
        int Anno;
        int codFacolta;
        } Studente;
        
typedef struct {
        int codFacolta;
        char nomeFac[20];
        } Facolta;
        
typedef struct {
        char Cognome[20];
        char Nome[20];
        int Anno;
        char nomeFac[20];
        } Anagrafe;
        
main()
{
      FILE* fp;
      FILE* ff;
      FILE* fa;
      Studente s;
      Facolta f;
      Anagrafe a;
      
      if ((fp = fopen("Studenti.dat", "rb"))==NULL) {
              fprintf(stderr, "\nErrore apertura");
              exit(1);
              }
      
      while (fread(&s, sizeof(Studente), 1, fp)>0) {
            int trovato = 0;
            if ((ff = fopen("Facolta.dat", "rb"))==NULL) {
                    fprintf(stderr, "\nErrore apertura");
                    exit(2);
                    }
            
            while (fread(&f, sizeof(Facolta), 1, ff)>0) {
                  
                  if(s.codFacolta == f.codFacolta) {
                                  trovato = 1;
                                  a.Cognome[20] = s.Cognome[20];
                                  a.Nome[20] = s.Nome[20];
                                  a.Anno = s.Anno;
                                  a.nomeFac[20] = f.nomeFac[20];
                  if ((fa = fopen("Anagrafe.dat", "ab"))==NULL) {
                          fprintf(stderr, "\nErrore apertura");
                          exit(3);
                          }
                                  fwrite(&a, sizeof(Anagrafe), 1, fa);
                                  }
                                   fclose(fa);
            
            if(trovato) {
            if ((fa = fopen("Anagrafe.dat", "rb"))==NULL) {
                    fprintf(stderr, "\nErrore apertura");
                    exit(4);}
            if(fread(&a, sizeof(Anagrafe), 1, fa))
            printf("%s   %s    %s   %d\n",a.Cognome, a.Nome, a.nomeFac, a.Anno);
            }
            fclose(fa);
            }
            
            fclose(ff);
      }
      fclose(fp);
      
      getch();
}
GRAZIE!