Beh, la fread c'entra poco ... comunque, la chiamata dovrebbe essere

codice:
contatto_read_bin (&link, frp);
e la funzione

codice:
void contatto_read_bin (struct contatto **pc, FILE *f) {
    *pc = (struct contatto *)malloc(sizeof(struct contatto));
    fread((*pc)->nome, sizeof(struct contatto), 1, f);
 }