Hvert program som kjører på datamaskinen bruker minnet . Den " heap" er den delen av minnet som brukes for dynamisk minne allokering . I et C-program , er gjenstander plassert på " heap" , og innebygde datatyper som heltall og lang er plassert på " stack ". Stabelen er en mindre, raskere område av minnet som er tildelt av siste inn, først ut . Globale og statiske variabler også lagres på " heap" og forblir i minnet til programmet er ferdig . Størrelsen på haugen er et forhåndsdefinert antall sider , men kan flere sider bli allokert til heap. Instruksjoner
en
Ge håndtaket til standard heap av kallprosessen innenfor C-program ved hjelp av " GetProcessHeap . " Definer en variabel for å holde håndtaket kalt " hHandle . " If " hHandle "er null, kaller" GetLastError "for å få feilmelding .
2
Bruk" hHandle " , kaller" HeapAlloc "for å allokere minne til at prosessen" heap . Serialisering sikrer at to trådene ikke tilgang til samme blokk med minne , og derfor bare bruke " HEAP_NO_SERIALIZE " parameter når programmet har bare én tråd eller programmet håndterer sine egne tråden samtaler til minnet heap . Du må også passere antall byte å bevilge til " HeapAlloc . "
3
Bruk " VirtualAlloc " for å reservere en blokk med sider for prosessen. Du kan gjøre flere samtaler til " VirtualAlloc " til å begå enkelte sider ikke å konsumere lagringsplass til den løpende prosessen trenger it.To allokere minne som er misligholdt til null og gir lese /skrive-tilgang til de engasjerte regioner av sidene , Type : DWORD dsize = 468178553 ; VirtualAlloc ( NULL , dsize , MEM_COMMIT , PAGE_READWRITE ) ;