Saan matatagpuan ang heap sa memory map ng isang makina?
Saan matatagpuan ang heap sa memory map ng isang makina?

Video: Saan matatagpuan ang heap sa memory map ng isang makina?

Video: Saan matatagpuan ang heap sa memory map ng isang makina?
Video: Isang bagay na kailangan gawin bago mag start ng motor ( mio i 125 cyan ) 2024, Nobyembre
Anonim

Sa mas mataas na mga address ay ang salansan at sa ibabang address ay ang bunton . Ang dalawa alaala Ang mga rehiyon ng paglalaan ay lumalaki sa gitna ng espasyo ng address, na hindi ginagamit at hindi inilalaan.

Bukod dito, saan matatagpuan ang heap sa memorya?

salansan ay ginagamit para sa static alaala alokasyon at Bunton para sa dynamic alaala alokasyon, parehong naka-imbak sa computer RAM . Mga variable na inilalaan sa stack ay direktang nakaimbak sa alaala at pag-access dito alaala ay napakabilis, at ang paglalaan nito ay hinarap kapag ang programa ay pinagsama-sama.

Higit pa rito, ano ang heap memory? A tambak ng memorya ay isang lokasyon sa alaala saan alaala maaaring ilaan sa random na pag-access. Hindi tulad ng salansan kung saan alaala ay inilalaan at inilabas sa isang napakalinaw na pagkakasunud-sunod, mga indibidwal na elemento ng data na inilalaan sa bunton ay karaniwang inilalabas sa mga paraan na hindi magkakasabay sa isa't isa.

Ang tanong din ay, saan sa memorya matatagpuan ang heap at saang direksyon ito lumalaki?

Ang Bunton ay ang segment kung saan dynamic alaala karaniwang nagaganap ang alokasyon. Ang lugar na ito ay karaniwang nagsisimula sa dulo ng BSS segment at lumalaki pataas hanggang mas mataas alaala mga address. Sa C, ito ay pinamamahalaan ng malloc / new, free / delete, na gumagamit ng brk at sbrk system calls para ayusin ang laki nito.

Saan kumukuha ng memorya ang malloc?

Sa C, dynamic alaala ay inilalaan mula sa heap gamit ang ilang karaniwang function ng library. Ang dalawang pangunahing dynamic alaala mga function ay malloc () at libre(). Ang malloc () function ay tumatagal ng isang parameter, na kung saan ay ang laki ng hiniling alaala lugar sa bytes. Ibinabalik nito ang isang pointer sa inilalaan alaala.

Inirerekumendang: