覆寫C++的new與delete

#include <iostream>
#include <memory.h>
#include <stdlib.h>

using namespace std;

void* operator new(size_t num)
{
cout <"I'm operator new, i got num=" <num <endl;
return malloc(num);
}

void* operator new[](size_t num)
{
cout <"I'm operator new[], i got num=" <num <endl;
return malloc(num);
}

void operator delete(void* addr)
{
cout <"I'm operator delete, i got addr=0x" <hex <(long long)addr <endl;
return free(addr);
}

void operator delete[](void* addr)
{
cout <"I'm operator delete[], i got addr=0x" <hex <(long long)addr <endl;
return free(addr);
}

int main()
{
int* a = new int[10];
delete[] a;
return 0;
}

留言