Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Returns the handle of the heap used by the C run-time system.

intptr_t _get_heap_handle( void );

Return Value

Returns the HANDLE to the Win32 heap used by the C run-time system.


Use this function if you want to call HeapSetInformation and enable the Low Fragmentation Heap on the CRT heap.


Routine Required header Compatibility
_get_heap_handle <malloc.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// crt_get_heap_handle.cpp
// compile with: /MT
#include <windows.h>
#include <malloc.h>
#include <stdio.h>

int main(void)
    intptr_t hCrtHeap = _get_heap_handle();
    ULONG ulEnableLFH = 2;
    if (HeapSetInformation((PVOID)hCrtHeap, HeapCompatibilityInformation,
                           &ulEnableLFH, sizeof(ulEnableLFH)))
        puts("Enabling Low Fragmentation Heap succeeded");
        puts("Enabling Low Fragmentation Heap failed");
    return 0;

See Also

Memory Allocation | Run-Time Routines and .NET Framework Equivalents

© 2015 Microsoft