How to use operator new to do port malloc? Can't incluce <new> in XIlinx SDK.

trob76 wrote on Tuesday, December 29, 2015:

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?

rtel wrote on Wednesday, December 30, 2015:

Does the code here https://github.com/richard-damon/FreeRTOScpp demonstrate how this is done?

richard_damon wrote on Wednesday, December 30, 2015:

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);
and
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).