fork download
  1. #include <iostream>
  2. #include <cassert>
  3. // File format: [ciiiiciiii...] a char (1 byte) followed by its state (4 bytes)
  4. // Each group takes 5 bytes
  5. char Buffer[30]; // 5*6, six groups
  6.  
  7. struct Group {
  8. char c;
  9. int state;
  10. };
  11.  
  12. int main(void) {
  13. assert(sizeof(char) == 1);
  14. assert(sizeof(int) == 4);
  15.  
  16. Group& first_group = *(Group*)(&Buffer[0]); // Group 1 is at 0
  17. Group& second_group = *(Group*)(&Buffer[5]); // Group 2 is at 5
  18.  
  19. first_group.c = '2';
  20. first_group.state = 1234;
  21.  
  22. std::cout << first_group.state << std::endl;
  23.  
  24. second_group = first_group;
  25.  
  26. std::cout << first_group.state << std::endl;
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
1234
13010