Varje program som körs på datorn använder minnet . Den " heap " är den del av minnet som används för dynamisk minnesallokering . I en C-programmet , är föremål placeras på " högen " , och inbyggda datatyper som heltal och långa placeras på " stacken . " Stacken är ett mindre , snabbare område i minnet som allokeras av förra in, först ut . Globala och statiska variabler också lagras på " högen " och stanna kvar i minnet tills programmet är klar . Storleken på heap är ett fördefinierat antal sidor , men kan fler sidor tilldelas högen . Instruktioner
1
Ge handtaget till standard upplag av den anropande processen i din C-program med hjälp av " GetProcessHeap . " Definiera en variabel för att hålla i handtaget kallas " hHandle . " Om " hHandle " är null , kallar " GetLastError " för att få felmeddelande .
2
Använda " hHandle " , kallar " HeapAlloc " för att allokera minne till den processen " högen . Serialisering säkerställer att två trådar inte tillgång till samma block av minne , och därför bara använda " HEAP_NO_SERIALIZE " parametern när programmet har bara en tråd eller programmet hanterar sina egna tråd samtal till minnet högen . Du kommer också att behöva passera antalet bytes att allokera till " HeapAlloc . " Addera 3
Använd " VirtualAlloc " att reservera ett block av sidor för processen . Du kan göra ytterligare samtal till " VirtualAlloc " att begå individuella sidor så att inte konsumera lagringsutrymme tills igång processen behöver it.To allokera minne som är grundinställningen för noll och låter läs /skriv-tillgång till de åtaganden från regioner i sidorna , typ : DWORD dsize = 468178553 ; VirtualAlloc ( NULL , dsize , MEM_COMMIT , PAGE_READWRITE ) ;