#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, const 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;
delete p;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxuZXc+Cgp2b2lkKiBvcGVyYXRvciBuZXcoc3RkOjpzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCnsgIAoJc3RkOjpjbG9nIDw8IGZpbGUgPDwgIjogIiA8PCBsaW5lIDw8IHN0ZDo6ZW5kbDsKCXZvaWQgKiB0X3BOZXdIZWFwT2JqZWN0ID0gc3RkOjptYWxsb2MoIHNpemUgKTsKICAKICBpZiAoIHRfcE5ld0hlYXBPYmplY3QgKQoJewogICAgLy8gTWVpbmUgaW1wbGVtZW50aWVydW5nCiAgICByZXR1cm4gdF9wTmV3SGVhcE9iamVjdDsKCX0KICB0aHJvdyBzdGQ6OmJhZF9hbGxvY3t9Owp9Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2b2lkKiBvcGVyYXRvciBuZXcgW10oc3RkOjpzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCnsgIAoJdm9pZCAqIHRfcE5ld0hlYXBPYmplY3QgPSBzdGQ6Om1hbGxvYyggc2l6ZSApOwogIAogIGlmICggdF9wTmV3SGVhcE9iamVjdCApCgl7CiAgICAvLyBNZWluZSBpbXBsZW1lbnRpZXJ1bmcKICAgIHJldHVybiB0X3BOZXdIZWFwT2JqZWN0OwoJfQogIHRocm93IHN0ZDo6YmFkX2FsbG9je307Cn0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIHB0cikgbm9leGNlcHQKewogICAgLy8gTWVpbmUgaW1wbGVtZW50aWVydW5nCiAgICBzdGQ6OmZyZWUocHRyKTsKICAgIHB0cj0gbnVsbHB0cjsKfQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI2RlZmluZSBuZXcgbmV3KF9fRklMRV9fLCBfX0xJTkVfXykKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovL3VzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCogcCA9IG5ldyBpbnQ7CgogICAgZGVsZXRlIHA7CglyZXR1cm4gMDsKfQo=