Hello everybody.
I'm having a couple of troubles with some code i'm writing which requires the new and delete operators ( as you have guessed i'm writing in c++).
The first problem is that if i use the pre_init.c file, to reset to zero the whole ram, when the routine starts, if i call the new inside main(), the device reset itself. I can't understand what's happening because from the look of it it seems that resetting the ram will corrupt the heap section, which shouldn't be possible since the initialization occur after the ram reset.
Does anyone have an explanation for this?
The second problem is that if i don't use the pre_init.c file, and i can use "new" without a crash, only half of the heap can actually be use used. What about the other half? Is it needed to keep track of the first half?
Thanks again.
john doe95743only half of the heap can actually be use used
The reason is that there is an "overhead" in the heap in the form of a linked-list to keep track of the allocations. Looking at the code in the memory.c file in the RTS library the minimum size of the overhead is 4 bytes per allocation, and will be more if either the RTS DEBUG option or large data model is used.
I quite don't undestand what happened, but when I allocated an array there were no problem at all...
Thanks.