Creo que deberias echarle otro vistazo a tu codigo: que tienes dentro de buffer? No hay nada porque no le has asignado nada ok? El codigo compila y la aplicacion funciona porque accedes a las posiciones existentes de buffer y envias al archivo punteros a esas posiciones: los punteros ocupan 4 bytes, igual que el tamaño de entero que le indicas:
Código:
fo.write (
(const char *) (&buffer[i]),//puntero a caracter, 4 bytes
sizeof (int)//tamaño de los tipos entero, 4 bytes
);
Si quieres guardar el entero cargado de 'fi' en 'fo' puedes enviar el puntero al entero como bufer de datos indicando el tamaño que debe escribir
Código:
fo.write ((const char *)&entero, sizeof (int));
Saludos
vosk