Variable scope, libraries

New and delete can be implemented very easily, if that is all that is required:

void* operator new(size_t n, void * p) { return p;  }  // placement new
void* operator new(size_t n) { return malloc (n); }
void operator delete (void * p) { free (p); };

The important thing about new compared to malloc is that the object's constructor is called (and the destructor with delete) which is almost certainly what you want.