Elk programma dat draait op uw computer gebruikt geheugen. De " heap " is het gebied van het geheugen wordt gebruikt voor het dynamisch toewijzen van geheugen . In een C -programma , worden objecten op de " hoop " , en ingebouwde datatypes zoals integer en lang op het worden geplaatst " stack . " De stack is een kleinere , snellere gebied van geheugen dat is toegewezen door de laatste in , first out . Globale en statische variabelen ook worden opgeslagen op de " hoop " en blijven in het geheugen totdat het programma is voltooid . De grootte van de heap is een vooraf gedefinieerd aantal pagina's , maar kan meer pagina's worden toegewezen aan de heap . Instructies Ge 1 de hendel om de standaard hoop van het aanroepende proces binnen uw C -programma met behulp van " GetProcessHeap . " Definieer een variabele aan de handgreep vasthouden genaamd " hHandle . " Als " hHandle " null is , roepen " GetLastError "om de foutmelding te krijgen . kopen van 2 gebruiken " hHandle " , roepen " HeapAlloc "om het geheugen aan dat proces ' heap toewijzen . Serialization zorgt ervoor dat twee draden niet toegang hebben tot dezelfde blok van het geheugen , daarom alleen gebruik maken van de parameter " HEAP_NO_SERIALIZE " wanneer de toepassing slechts een draad of de applicatie regelt zijn eigen thread oproepen om het geheugen heap . U moet ook het aantal bytes doorgeven aan toe te wijzen aan " HeapAlloc . " 3 Gebruik " VirtualAlloc " naar een blok van pagina's reserveren voor het proces . U kunt extra bellen naar " VirtualAlloc " om individuele pagina's te plegen , zodat er geen opslagruimte gebruiken totdat het lopende proces moet it.To toewijzen geheugen dat is standaard ingesteld op nul en laat lees /schrijf-toegang tot de betrokken regio's van de pagina's , Type : DWORD dsize = 468178553 ; VirtualAlloc ( NULL , dsize , MEM_COMMIT , PAGE_READWRITE ) ;
|