Beh, se vuoi scrivere l'indirizzo della locazione memoria di curr direi nessuno.
Se però vuoi scrivere il contenuto di curr, direi che c'è un & di troppo.
codice:
fwrite(&curr, sizeof(char),1,file3);
Riguardo alle struct C. Probabilmente è per risparmiarsi la solfa di scrivere ogni volta "struct qualcosa" quando si deve usare.