We recommend using Visual Studio 2017



The latest version of this topic can be found at _aligned_msize.

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.

RoutineRequired 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.

Memory Allocation