Если вы просто ищете пример, ниже приведен чрезвычайно простой пример без проверки ошибок. Он записывает содержимое структуры с некоторыми целыми числами в файл и затем снова считывает их обратно. Тем не менее, замечания других относительно порядка следования байтов очень уместны, и их необходимо учитывать, если файл будет использоваться на разных платформах.
typedef struct {
int count;
int *values;
} SomeInts;
int main(int argc, char* argv[])
{
SomeInts ints;
int i;
FILE *fh;
ints.count = 5;
ints.values = (int*)malloc( ints.count * sizeof(int));
for ( i = 0; i < ints.count; i++ )
ints.values[i] = i * 42;
// write it
fh = fopen( argv[1], "wb" );
// really should check amount written to verify it worked
fwrite( &ints.count, sizeof( ints.count ), 1, fh );
fwrite( ints.values, sizeof(ints.values[0]), ints.count, fh );
fclose(fh);
// read them back in.
free( ints.values );
memset( &ints, 0, sizeof( ints ));
fh = fopen( argv[1], "rb" );
// read how many ints (should also check for errors)
fread( &ints.count, sizeof( ints.count ), 1, fh );
ints.values = (int*)malloc( ints.count * sizeof(int));
fread( ints.values, sizeof(ints.values[0]), ints.count, fh );
fclose(fh);
for ( i = 0; i < ints.count; i++ )
printf( "%d\n", ints.values[i] );
free( ints.values );
}