#include <iostream> #include <string> struct baz { int h; int k; baz(int a, int b) : h(a), k(b) {} }; struct bar { int i; int* i_ptr; baz b; baz& b_ref; bar(int x) : i(x),i_ptr(new int(x+1)),b(i+3,i+5),b_ref(b) {} }; struct foo { int a; int* a_ptr; bar b; foo(int x) : a(x), a_ptr(new int(x+1)), b(2*x) {} }; int main(int argc, char** argv) { foo foo1(12); foo foo2(121); foo2.a = 7777; // Stop here *(foo2.b.i_ptr) = 8888; foo2.b.b.h = 9999; *(foo1.a_ptr) = 9999; foo1.b.i = 9999; int numbers[5] = {1,2,3,4,5}; return 0; }