La fwrite() è molto simile alla fread(), nel senso che come per la fread() passi un puntatore ad una struttura temporanea (o direttamente un elemento del tuo array di strutture).
Però la fread che ci hai mostrato non è corretta:
while(fread(&studente,sizeof(studente),1,pf1)!=0)
se 'studente' è il tipo di dato non lo puoi utilizzare per immagazzinare dei dati... il compilatore dovrebbe darti errore; piuttosto dovresti scrivere:
sudente tempstud;
while(fread(&tempstud,sizeof(studente),1,pf1)!=0)
così se la fread() va a buon fine in tempstud hai il tuo "record": naturalmente all'interno del ciclo while farai tutte le operazioni necessarie per copiare tempstud in un array di strutture o qualsiasi altra cosa tu debba fare.