FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [December 2015 Threads]
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 . 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?
Does the code here https://github.com/richard-damon/FreeRTOScpp demonstrate how this is done?
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::sizet size) throw (std::badalloc);
and
void* operator new (std::sizet size, const std::nothrowt& 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).
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.