#include <stdio.h>
#include <stdlib.h>
#include <string.h>

class Test
{
public:
static void* operator new(size_t size,void* ptr){
delete (char*)ptr;
return NULL;
}
static void operator delete(void* ptr){
char** p = (char**)ptr;
*p = new char[256];
}
};


int main(void)
{
char* ptr;
delete (Test*)&ptr;
memcpy(ptr,"fuckin' C++",sizeof("fuckin' C++"));
printf("%s\n",ptr);
new(ptr) Test;

return 0;
}