#include <iostream>
#include <cstdlib>
#include <new>
void* operator new(std::size_t size, const char *file, int line)
{
std::clog << file << ": " << line << std::endl;
void * t_pNewHeapObject = std::malloc( size );
if ( t_pNewHeapObject )
{
// Meine implementierung
return t_pNewHeapObject;
}
throw std::bad_alloc{};
}
//----------------------------------------------------------------------------
void* operator new [](std::size_t size, char* file, int line)
{
void * t_pNewHeapObject = std::malloc( size );
if ( t_pNewHeapObject )
{
// Meine implementierung
return t_pNewHeapObject;
}
throw std::bad_alloc{};
}
//----------------------------------------------------------------------------
void operator delete(void* ptr) noexcept
{
// Meine implementierung
std::free(ptr);
ptr= nullptr;
}
//----------------------------------------------------------------------------
#define new new(__FILE__, __LINE__)
//----------------------------------------------------------------------------
//using namespace std;
int main() {
int* p = new int;
//C* q = new C;
//delete q;
delete p;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxuZXc+Cgp2b2lkKiBvcGVyYXRvciBuZXcoc3RkOjpzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUpCnsKCXN0ZDo6Y2xvZyA8PCBmaWxlIDw8ICI6ICIgPDwgbGluZSA8PCBzdGQ6OmVuZGw7Cgl2b2lkICogdF9wTmV3SGVhcE9iamVjdCA9IHN0ZDo6bWFsbG9jKCBzaXplICk7CiAgCiAgaWYgKCB0X3BOZXdIZWFwT2JqZWN0ICkKCXsKICAgIC8vIE1laW5lIGltcGxlbWVudGllcnVuZwogICAgcmV0dXJuIHRfcE5ld0hlYXBPYmplY3Q7Cgl9CiAgdGhyb3cgc3RkOjpiYWRfYWxsb2N7fTsKfQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kdm9pZCogb3BlcmF0b3IgbmV3IFtdKHN0ZDo6c2l6ZV90IHNpemUsIGNoYXIqIGZpbGUsIGludCBsaW5lKQp7ICAKCXZvaWQgKiB0X3BOZXdIZWFwT2JqZWN0ID0gc3RkOjptYWxsb2MoIHNpemUgKTsKICAKICBpZiAoIHRfcE5ld0hlYXBPYmplY3QgKQoJewogICAgLy8gTWVpbmUgaW1wbGVtZW50aWVydW5nCiAgICByZXR1cm4gdF9wTmV3SGVhcE9iamVjdDsKCX0KICB0aHJvdyBzdGQ6OmJhZF9hbGxvY3t9Owp9Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwdHIpIG5vZXhjZXB0CnsKICAgIC8vIE1laW5lIGltcGxlbWVudGllcnVuZwogICAgc3RkOjpmcmVlKHB0cik7CiAgICBwdHI9IG51bGxwdHI7Cn0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNkZWZpbmUgbmV3IG5ldyhfX0ZJTEVfXywgX19MSU5FX18pCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy91c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQqIHAgPSBuZXcgaW50OwogICAgLy9DKiBxID0gbmV3IEM7CgogICAgLy9kZWxldGUgcTsKICAgIGRlbGV0ZSBwOwoJcmV0dXJuIDA7Cn0K