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
calloc(), _expand(), free(), halloc(), hfree(), malloc(), realloc(), sbrk()
#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