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 37 38 39 40 41 42 43 44 | #include <iostream> #include <cstdlib> struct dummy { dummy() : m_t( 23) {} ~dummy() {} int m_t; void * operator new( size_t size ) { std::cout << "new: Requested " << size << " bytes" << std::endl; void * v = malloc( size ); std::cout << "Object allocated at 0x" << std::hex << reinterpret_cast<long int>( v ) << std::endl; return v; } void * operator new[]( size_t size ) { std::cout << "new[]: Requested " << size << " bytes" << std::endl; void * v = malloc( size ); std::cout << "Object Array allocated at 0x" << std::hex << reinterpret_cast<long int>( v ) << std::endl; return v; } void operator delete( void * v) { std::cout << "delete: at 0x" << std::hex << reinterpret_cast<long int>( v ) << std::endl; //free( v ); // We leak instead of crashing } void operator delete[]( void * v) { std::cout << "delete[]: at 0x" << std::hex << reinterpret_cast<long int>( v ) << std::endl; //free( v ); // We leak instead of crashing } }; int main( ) { dummy * d1 = new dummy(); std::cout << "d1 at 0x" << std::hex << reinterpret_cast<long int>( d1 ) << std::endl; delete d1; dummy * d2 = new dummy[ 1 ]; std::cout << "d2 at 0x" << std::hex << reinterpret_cast<long int>( d2 ) << std::endl; delete d2; delete[] d2; return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KCnN0cnVjdCBkdW1teSB7CiAgZHVtbXkoKSA6IG1fdCggMjMpIHt9CiAgfmR1bW15KCkge30KICBpbnQgbV90OwogIHZvaWQgKiBvcGVyYXRvciBuZXcoIHNpemVfdCBzaXplICkgewogICAgc3RkOjpjb3V0IDw8ICJuZXc6IFJlcXVlc3RlZCAiIDw8IHNpemUgPDwgIiBieXRlcyIgPDwgc3RkOjplbmRsOwogICAgdm9pZCAqIHYgPSBtYWxsb2MoIHNpemUgKTsKICAgIHN0ZDo6Y291dCA8PCAiT2JqZWN0IGFsbG9jYXRlZCBhdCAweCIgPDwgc3RkOjpoZXggPDwgcmVpbnRlcnByZXRfY2FzdDxsb25nIGludD4oIHYgKSA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gdjsKICB9CiAgCiAgdm9pZCAqIG9wZXJhdG9yIG5ld1tdKCBzaXplX3Qgc2l6ZSApIHsKICAgIHN0ZDo6Y291dCA8PCAibmV3W106IFJlcXVlc3RlZCAiIDw8IHNpemUgPDwgIiBieXRlcyIgPDwgc3RkOjplbmRsOwogICAgdm9pZCAqIHYgPSBtYWxsb2MoIHNpemUgKTsKICAgIHN0ZDo6Y291dCA8PCAiT2JqZWN0IEFycmF5IGFsbG9jYXRlZCBhdCAweCIgPDwgc3RkOjpoZXggPDwgcmVpbnRlcnByZXRfY2FzdDxsb25nIGludD4oIHYgKSA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gdjsKICB9CiAgCiAgdm9pZCBvcGVyYXRvciBkZWxldGUoIHZvaWQgKiB2KSB7CiAgICBzdGQ6OmNvdXQgPDwgImRlbGV0ZTogYXQgMHgiIDw8IHN0ZDo6aGV4IDw8IHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyBpbnQ+KCB2ICkgPDwgc3RkOjplbmRsOwogICAgLy9mcmVlKCB2ICk7IC8vIFdlIGxlYWsgaW5zdGVhZCBvZiBjcmFzaGluZwogIH0KICAKICB2b2lkIG9wZXJhdG9yIGRlbGV0ZVtdKCB2b2lkICogdikgewogICAgc3RkOjpjb3V0IDw8ICJkZWxldGVbXTogYXQgMHgiIDw8IHN0ZDo6aGV4IDw8IHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyBpbnQ+KCB2ICkgPDwgc3RkOjplbmRsOwogICAgLy9mcmVlKCB2ICk7IC8vIFdlIGxlYWsgaW5zdGVhZCBvZiBjcmFzaGluZwogIH0KICAKICAKfTsKCmludCBtYWluKCApIHsKICBkdW1teSAqIGQxID0gbmV3IGR1bW15KCk7CiAgc3RkOjpjb3V0IDw8ICJkMSBhdCAweCIgPDwgc3RkOjpoZXggPDwgcmVpbnRlcnByZXRfY2FzdDxsb25nIGludD4oIGQxICkgPDwgc3RkOjplbmRsOwogIGRlbGV0ZSBkMTsKICBkdW1teSAqIGQyID0gbmV3IGR1bW15WyAxIF07CiAgc3RkOjpjb3V0IDw8ICJkMiBhdCAweCIgPDwgc3RkOjpoZXggPDwgcmVpbnRlcnByZXRfY2FzdDxsb25nIGludD4oIGQyICkgPDwgc3RkOjplbmRsOyAKICBkZWxldGUgZDI7CiAgZGVsZXRlW10gZDI7CiAgcmV0dXJuIDA7Cn0=
-
upload with new input
-
result: Success time: 0.01s memory: 2860 kB returned value: 0
new: Requested 4 bytes Object allocated at 0x8509008 d1 at 0x8509008 delete: at 0x8509008 new[]: Requested 8 bytes Object Array allocated at 0x8509018 d2 at 0x850901c delete: at 0x850901c delete[]: at 0x8509018


