Heap allocate size …
Hi,
in my application I use a heap memory with code of “heap4″. I have the need to use the “realloc” function to provide a already allocated memory area. I have write a wrapper to this function on “heap4″ but I realized now that I do not know the size of the old allocation to copy the old content to the new memory area.
There is a function “mallocusablesize” that returns this value but how implement this routine in “heap_4” ?
You can know the size of a memory block allocated by vPortMalloc ?
Thanks very much.
debugasm
Heap allocate size …
The size of every block is stored in a BlockLink_t structure, in the
allocated block itself. See the implementation of vPortFree() for an
example of how it is accessed.
Heap allocate size …
I understand, thank you so much.
debugasm
Heap allocate size …
To be precise:
~~~~
// The block is being returned to the heap – it is no longer allocated.
block_size = (pxLink->xBlockSize & ~xBlockAllocatedBit) – xHeapStructSize;
~~~~
Obtain block size allocate by “pvPortMalloc” rounded to “BYTE_ALIGNMENT”
debugasm