We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.


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.