Hvor er haugen plassert i en maskins minnekart?
Hvor er haugen plassert i en maskins minnekart?

Video: Hvor er haugen plassert i en maskins minnekart?

Video: Hvor er haugen plassert i en maskins minnekart?
Video: #26 Stack And Heap in Java 2024, November
Anonim

På de høyere adressene er stable og på den nedre adressen er haug . De to hukommelse allokeringsregioner vokser inn i midten av adresseområdet, som er ubrukt og uallokert.

Dessuten, hvor er haugen plassert i minnet?

Stable brukes til statisk hukommelse tildeling og Heap for dynamisk hukommelse allokering, begge lagret i datamaskinens RAM . Variabler tildelt på stabelen er lagret direkte til hukommelse og tilgang til dette hukommelse er veldig rask, og allokeringen behandles når programmet er kompilert.

Videre, hva er haugminnet? EN minnehaug er et sted i hukommelse hvor hukommelse kan tildeles ved tilfeldig tilgang. I motsetning til stabelen hvor hukommelse er allokert og frigitt i en meget definert rekkefølge, individuelle dataelementer allokert på haug frigjøres vanligvis på måter som er asynkrone fra hverandre.

Spørsmålet er også, hvor i minnet er haugen plassert og i hvilken retning vokser den?

De Heap er segmentet der dynamisk hukommelse tildeling skjer vanligvis. Dette området begynner vanligvis på slutten av BSS-segmentet og vokser oppover til høyere hukommelse adresser. I C administreres den av malloc / new, free / delete, som bruker brk- og sbrk-systemanropene for å justere størrelsen.

Hvor får malloc minne fra?

I C, dynamisk hukommelse tildeles fra haugen ved hjelp av noen standard bibliotekfunksjoner. De to nøkkeldynamikken hukommelse funksjoner er malloc () og gratis(). De malloc ()-funksjonen tar en enkelt parameter, som er størrelsen på den forespurte hukommelse område i byte. Den returnerer en peker til den tildelte hukommelse.

Anbefalt: