#include <iostream>
using namespace std;
struct foo {
int x;
int* y;
foo(int _x, int _y) : x{_x} {
y = new int(_y);
}
};
void print(int step, foo& v) {
cout << step << ". x = " << v.x << " ; y = " << *(v.y) << endl;
}
void modify(int step, foo v) {
v.x = 3;
*(v.y) = 4;
print(step, v);
}
int main() {
foo v(1, 2);
print(1, v);
modify(2, v);
print(3, v);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBmb28gewoJaW50IHg7CglpbnQqIHk7Cglmb28oaW50IF94LCBpbnQgX3kpIDogeHtfeH0gewoJCXkgPSBuZXcgaW50KF95KTsKCX0KfTsKCnZvaWQgcHJpbnQoaW50IHN0ZXAsIGZvbyYgdikgewoJY291dCA8PCBzdGVwIDw8ICIuIHggPSAiIDw8IHYueCA8PCAiIDsgeSA9ICIgPDwgKih2LnkpIDw8IGVuZGw7Cn0KCnZvaWQgbW9kaWZ5KGludCBzdGVwLCBmb28gdikgewoJdi54ID0gMzsKCSoodi55KSA9IDQ7CglwcmludChzdGVwLCB2KTsKfQoKaW50IG1haW4oKSB7Cglmb28gdigxLCAyKTsKCXByaW50KDEsIHYpOwoJbW9kaWZ5KDIsIHYpOwoJcHJpbnQoMywgdik7CglyZXR1cm4gMDsKfQ==