I am trying to use the malloc in heap_4 when a new in cpp is used. Scott Meyers’ book indicates I can replace the new operator using operator new. However, I cannot include or <new.h>. The code for operator new dose not get linked and the new operator is called normally without changing the memory allocation. The result is bad alloc.
Is there something to reference about this?
My cpp wrapper doesn’t wrap new (yet), since you REALLY want to replace/fix malloc so that everything is fixed and how to do that is library dependent.
To fix just new, you just need to define
void* operator new (std::size_t size) throw (std::bad_alloc);
void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) throw();
in your code (the first should throw on failure, and the second return 0, like malloc does).
Both should call a thread safe version of malloc and return (or throw).