ya... Llevas razón, pero en ese caso no afecta ya que todos los campos son chars.
En todo caso será mejor leer aquí para entender mejor y evitar futuros errores:
http://c.conclase.net/curso/?cap=011b#STR_sizeof
A eso también se le dice alineación de bytes o byte-aling.
Lo mejor seria serializar todo en cadena de caracteres y enviar al archivo, luego pasar por el proceso inverso a la hora de leer.