Format
#include <umalloc.h> Heap_t _mheap(void *ptr);
Language Level: Extension
_mheap determines from which heap the object
specified by ptr was allocated. The ptr must be a valid pointer
that was returned from a runtime allocation function (_ucalloc,
malloc, realloc, and so on). If the pointer is not valid, the
results of _mheap are undefined.
Return Value
_mheap returns the handle of the heap
from which the object was allocated. If the object was allocated
from the runtime heap, _mheap returns _RUNTIME_HEAP. If the
object passed to _mheap is NULL, _mheap returns NULL. If the
object is not valid, _mheap either returns NULL or the results
are unpredictable and an exception may occur.
Example
This example allocates a block of memory
from the heap, then uses _mheap to determine which heap the block
came from.
#include <stdlib.h> #include <stdio.h> #include <umalloc.h>
int main(void)
{
char *ptr;
if (NULL == (ptr = (char*)malloc(10))) {
puts("Could not allocate memory block.");
exit(EXIT_FAILURE);
}
printf("Handle of heap used is 0x%x\n", _mheap(ptr));
return 0;
/****************************************************
The output should be similar to:
Handle of heap used is 0x70000 ****************************************************/ }
![]()
_msize -- Return Number of
Bytes Allocated
_ucreate --
Create a Memory Heap
_ustats -- Get
information about Heap
<umalloc.h>