Returns the size of a memory block allocated in the heap.

size_t _msize(
   void *memblock,
   size_t alignment,
   size_t offset


  • [in] memblock
    Pointer to the memory block.

  • [in] alignment
    The alignment value, which must be an integer power of 2.

  • [in] offset
    The offset into the memory allocation to force the alignment.

Return Value

Returns the size (in bytes) as an unsigned integer.


The _aligned_msize function returns the size, in bytes, of the memory block allocated by a call to _aligned_malloc or _aligned_realloc. The alignment and offset values must be the same as the values passed to the function that allocated the block.

When the application is linked with a debug version of the C run-time libraries, _aligned_msize resolves to _aligned_msize_dbg. For more information about how the heap is managed during the debugging process, see The CRT Debug Heap.

This function validates its parameter. If memblock is a null pointer or alignment is not a power of 2, _msize invokes an invalid parameter handler, as described in Parameter Validation. If the error is handled, the function sets errno to EINVAL and returns -1.



Required header



For more compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.

.NET Framework Equivalent

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

See Also


Memory Allocation