Waar bevindt de heap zich in de geheugenkaart van een machine?
Waar bevindt de heap zich in de geheugenkaart van een machine?

Video: Waar bevindt de heap zich in de geheugenkaart van een machine?

Video: Waar bevindt de heap zich in de geheugenkaart van een machine?
Video: $ 399.000 1983 CHEOY LEE 90 COCKPIT CLASSIC MOTORYACHT TOUR / Achterkajuit Liveaboard SuperYacht 2024, April
Anonim

Op de hogere adressen is de stapelen en op het onderste adres is de hoop . De twee geheugen toewijzingsregio's groeien naar het midden van de adresruimte, die ongebruikt en niet-toegewezen is.

Bovendien, waar bevindt de heap zich in het geheugen?

Stapel wordt gebruikt voor statische geheugen toewijzing en Hoop voor dynamisch geheugen toewijzing, beide opgeslagen in de computer RAM . Variabelen toegewezen op de stapel zijn direct opgeslagen in de geheugen en toegang tot deze geheugen is erg snel en de toewijzing wordt afgehandeld wanneer het programma wordt gecompileerd.

Bovendien, wat is het heapgeheugen? EEN geheugenhoop is een locatie in geheugen waar geheugen willekeurig kunnen worden toegewezen. In tegenstelling tot de stapel waar geheugen wordt toegewezen en vrijgegeven in een zeer gedefinieerde volgorde, individuele gegevenselementen toegewezen aan de hoop worden meestal vrijgegeven op manieren die asynchroon van elkaar zijn.

De vraag is ook: waar in het geheugen bevindt de hoop zich en in welke richting groeit deze?

De Hoop is het segment waar dynamisch geheugen toewijzing vindt meestal plaats. Dit gebied begint gewoonlijk aan het einde van het BSS-segment en groeit omhoog naar hoger geheugen adressen. In C wordt het beheerd door malloc / new, free / delete, die de systeemaanroepen brk en sbrk gebruiken om de grootte aan te passen.

Waar haalt malloc het geheugen vandaan?

In C, dynamisch geheugen wordt toegewezen vanaf de heap met behulp van enkele standaard bibliotheekfuncties. De twee belangrijkste dynamiek: geheugen functies zijn malloc () en vrij(). De malloc () functie heeft een enkele parameter nodig, namelijk de grootte van de gevraagde geheugen gebied in bytes. Het geeft een aanwijzer terug naar de toegewezen geheugen.

Aanbevolen: