1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> class A { public: A() { printf("ctor %X\n", this); } A(const A& v) { printf("copy %X=%X\n", this, &v); *this=v; } int v, v2; }; A fn(A v) { printf("fn %X\n", &v); v.v=9; return v; } A fn2(A v) { printf("fn2 %X\n", &v); return fn(v); } int main(){ printf("Test 1\n"); A a; A b = fn(a); printf("addr=%X\n", &b); printf("Test 2\n"); A c = fn(A()); printf("addr=%X\n", &c); printf("Test 3\n"); A d = fn2(A()); printf("addr=%X\n", &d); } |
I2luY2x1ZGUgPHN0ZGlvLmg+CmNsYXNzIEEKewpwdWJsaWM6CglBKCkgeyBwcmludGYoImN0b3IgJVhcbiIsIHRoaXMpOyB9CglBKGNvbnN0IEEmIHYpIHsgcHJpbnRmKCJjb3B5ICVYPSVYXG4iLCB0aGlzLCAmdik7ICp0aGlzPXY7IH0KCWludCB2LCB2MjsKfTsKCkEgZm4oQSB2KSB7IHByaW50ZigiZm4gJVhcbiIsICZ2KTsgdi52PTk7IHJldHVybiB2OyB9CkEgZm4yKEEgdikgeyBwcmludGYoImZuMiAlWFxuIiwgJnYpOyByZXR1cm4gZm4odik7IH0KaW50IG1haW4oKXsKCXByaW50ZigiVGVzdCAxXG4iKTsKCUEgYTsKCUEgYiA9IGZuKGEpOwoJcHJpbnRmKCJhZGRyPSVYXG4iLCAmYik7CglwcmludGYoIlRlc3QgMlxuIik7CglBIGMgPSBmbihBKCkpOwoJcHJpbnRmKCJhZGRyPSVYXG4iLCAmYyk7CglwcmludGYoIlRlc3QgM1xuIik7CglBIGQgPSBmbjIoQSgpKTsKCXByaW50ZigiYWRkcj0lWFxuIiwgJmQpOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 2828 kB returned value: 0
Test 1 ctor BFA3BD28 copy BFA3BD18=BFA3BD28 fn BFA3BD18 copy BFA3BD20=BFA3BD18 addr=BFA3BD20 Test 2 ctor BFA3BD08 fn BFA3BD08 copy BFA3BD10=BFA3BD08 addr=BFA3BD10 Test 3 ctor BFA3BCF8 fn2 BFA3BCF8 copy BFA3BCC8=BFA3BCF8 fn BFA3BCC8 copy BFA3BD00=BFA3BCC8 addr=BFA3BD00


