1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <stdlib.h> #include <iostream> struct a { virtual ~a(){}; void* operator new[] (size_t s) { void* p = malloc(s); std::cout << "malloc returned " << p << std::endl; return p; } void operator delete[] (void* p) { std::cout << "delete[] got " << p << std::endl; free(p); } }; struct b { int x; }; struct c: b, a { int y; }; int main () { c* cc = new c[10]; std::cout << "new[] expression returned " << (void*)cc << std::endl; delete[] cc; } |
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CiAKc3RydWN0IGEKewogIHZpcnR1YWwgfmEoKXt9OwogIHZvaWQqIG9wZXJhdG9yIG5ld1tdIChzaXplX3QgcykKICB7CiAgICB2b2lkKiBwID0gbWFsbG9jKHMpOwogICAgc3RkOjpjb3V0IDw8ICJtYWxsb2MgcmV0dXJuZWQgIiA8PCBwIDw8IHN0ZDo6ZW5kbDsKICAgIHJldHVybiBwOwogIH0KIAogIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10gKHZvaWQqIHApCiAgewogICAgc3RkOjpjb3V0IDw8ICJkZWxldGVbXSBnb3QgIiA8PCBwIDw8IHN0ZDo6ZW5kbDsKICAgIGZyZWUocCk7CiAgfQp9OwogCnN0cnVjdCBiCnsKICBpbnQgeDsKfTsKIApzdHJ1Y3QgYzogYiwgYQp7CiAgaW50IHk7Cn07CiAKaW50IG1haW4gKCkKewogIGMqIGNjID0gbmV3IGNbMTBdOwogIHN0ZDo6Y291dCA8PCAibmV3W10gZXhwcmVzc2lvbiByZXR1cm5lZCAiIDw8ICh2b2lkKiljYyA8PCBzdGQ6OmVuZGw7CiAgZGVsZXRlW10gY2M7Cn0=
-
upload with new input
-
result: Success time: 0.01s memory: 2856 kB returned value: 0
malloc returned 0x96be008 new[] expression returned 0x96be00c delete[] got 0x96be008


