return the size of an allocated block of memory
#include <malloc.h> size_t _msize( void *buffer ); size_t _bmsize( __segment seg, void __based(void) *buffer ); size_t _fmsize( void __far *buffer ); size_t _nmsize( void __near *buffer );
The _msize() functions return the size of the memory block pointed to by buffer that was allocated by a call to the appropriate version of the calloc(), malloc() or realloc() functions.
You must use the correct _msize() function as listed below, depending on which heap the memory block belongs to:
In small data models (small and medium memory models), _msize() maps to _nmsize(). In large data models (compact, large and huge memory models), _msize() maps to _fmsize().
The size of the memory block pointed to by buffer.
#include <stdio.h> #include <malloc.h> void main() { void *buffer; buffer = malloc( 999 ); printf( "Size of block is %u bytes\n", _msize( buffer ) ); }
produces the output:
Size of block is 1000 bytes
WATCOM
Safety: | |
---|---|
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |
calloc(), _expand(), free(), halloc(), hfree(), malloc(), realloc(), sbrk()