Memory Allocation

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Memory Allocation.

Use these routines to allocate, free, and reallocate memory.

Memory-Allocation Routines

Routine Use .NET Framework equivalent
_alloca, _malloca Allocate memory from stack Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
calloc Allocate storage for array, initializing every byte in allocated block to 0 Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_calloc_dbg Debug version of calloc; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
operator delete Free allocated block Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
operator delete[] Free allocated block Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_expand Expand or shrink block of memory without moving it Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_expand_dbg Debug version of _expand; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
free Free allocated block Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_free_dbg Debug version of free; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_freea Free allocated block from stack Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_get_heap_handle Get Win32 HANDLE of the CRT heap. Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_heapadd Add memory to heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_heapchk Check heap for consistency Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_heapmin Release unused memory in heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_heapset Fill free heap entries with specified value Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_heapwalk Return information about each entry in heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
malloc Allocate block of memory from heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_malloc_dbg Debug version of malloc; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_msize Return size of allocated block Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_msize_dbg Debug version of _msize; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
new Allocate block of memory from heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
new[] Allocate block of memory from heap Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_query_new_handler Return address of current new handler routine as set by _set_new_handler Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_query_new_mode Return integer indicating new handler mode set by _set_new_mode for malloc Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
realloc Reallocate block to new size Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_realloc_dbg Debug version of realloc; only available in the debug versions of the run-time libraries Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_set_new_handler Enable error-handling mechanism when new operator fails (to allocate memory) and enable compilation of Standard Template Libraries (STL) Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
_set_new_mode Set new handler mode for malloc Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

See Also

Run-Time Routines by Category