Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Collapse the table of content
Expand the table of content


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.

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.

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

© 2015 Microsoft