#include <iostream>
#include <iomanip>
using namespace std;
struct Widget
{
int widget;
};
struct Button
: public Widget
{
int button;
};
int main()
{
cout << "sizeof(int): " << sizeof(int) << endl;
cout << "sizeof(Button): " << sizeof(Button) << endl;
Button* b = new Button;
b->widget = 1;
b->button = 2;
int* data = reinterpret_cast<int*>(b);
for(int i=0; i<sizeof(Button)/sizeof(int); i++)
{
cout << "0x" << hex << setfill('0') << setw(2*sizeof(int)) << data[i] << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgV2lkZ2V0CnsKICAgIGludCB3aWRnZXQ7Cn07CgpzdHJ1Y3QgQnV0dG9uCiAgICA6IHB1YmxpYyBXaWRnZXQKewogICAgaW50IGJ1dHRvbjsKfTsKCmludCBtYWluKCkKewogICAgY291dCA8PCAic2l6ZW9mKGludCk6ICIgPDwgc2l6ZW9mKGludCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgInNpemVvZihCdXR0b24pOiAiIDw8IHNpemVvZihCdXR0b24pIDw8IGVuZGw7CiAgICBCdXR0b24qIGIgPSBuZXcgQnV0dG9uOwogICAgYi0+d2lkZ2V0ID0gMTsKICAgIGItPmJ1dHRvbiA9IDI7CiAgICBpbnQqIGRhdGEgPSByZWludGVycHJldF9jYXN0PGludCo+KGIpOwogICAgZm9yKGludCBpPTA7IGk8c2l6ZW9mKEJ1dHRvbikvc2l6ZW9mKGludCk7IGkrKykKICAgIHsKICAgICAgICBjb3V0IDw8ICIweCIgPDwgaGV4IDw8IHNldGZpbGwoJzAnKSA8PCBzZXR3KDIqc2l6ZW9mKGludCkpIDw8IGRhdGFbaV0gPDwgZW5kbDsKICAgIH0KfQ==