#include <iostream>
#include <cassert>
// File format: [ciiiiciiii...] a char (1 byte) followed by its state (4 bytes)
// Each group takes 5 bytes
char Buffer[30]; // 5*6, six groups

struct Group {
	char c;
	int state;
};

int main(void) {
	assert(sizeof(char) == 1);
	assert(sizeof(int) == 4);
	
	Group& first_group = *(Group*)(&Buffer[0]); // Group 1 is at 0
	Group& second_group = *(Group*)(&Buffer[5]); // Group 2 is at 5
	
	first_group.c = '2';
	first_group.state = 1234;
	
	std::cout << first_group.state << std::endl;
	
	second_group = first_group;
	
	std::cout << first_group.state << std::endl;
	
	return 0;
}
