#include <stdio.h>
#define logh(x) printf(#x": 0x%08x\n",x)
typedef unsigned char byte;
class A {
public:
A();
byte *getBufferAddress() { return buffer; };
byte *getBuffer();
private:
byte *buffer;
};
A::A() {
buffer = new byte[1024];
}
byte *A::getBuffer() {
byte bs[1024];
//copy(bs, buffer);
logh(bs);
return bs;
}
int main() {
A *a = new A();
A b;
logh(a->getBufferAddress());
logh(a->getBuffer());
logh(b.getBufferAddress());
logh(b.getBuffer());
delete a;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIGxvZ2goeCkgcHJpbnRmKCN4IjogMHglMDh4XG4iLHgpCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgYnl0ZTsKCmNsYXNzIEEgewoJcHVibGljOgoJCUEoKTsKCQlieXRlICpnZXRCdWZmZXJBZGRyZXNzKCkgeyByZXR1cm4gYnVmZmVyOyB9OwoJCWJ5dGUgKmdldEJ1ZmZlcigpOwoJcHJpdmF0ZToKCQlieXRlICpidWZmZXI7Cn07CkE6OkEoKSB7CglidWZmZXIgPSBuZXcgYnl0ZVsxMDI0XTsKfQpieXRlICpBOjpnZXRCdWZmZXIoKSB7CglieXRlIGJzWzEwMjRdOwoJLy9jb3B5KGJzLCBidWZmZXIpOwoJbG9naChicyk7CglyZXR1cm4gYnM7Cn0KCmludCBtYWluKCkgewoJQSAqYSA9IG5ldyBBKCk7CkEgYjsKCQoJbG9naChhLT5nZXRCdWZmZXJBZGRyZXNzKCkpOwoJbG9naChhLT5nZXRCdWZmZXIoKSk7Cglsb2doKGIuZ2V0QnVmZmVyQWRkcmVzcygpKTsKCWxvZ2goYi5nZXRCdWZmZXIoKSk7CgkKCWRlbGV0ZSBhOwoJCglyZXR1cm4gMDsKfQ==