7. Alokácia pamäte
7.1 Pripomeňme si
Každá premenná musí mať počas svojej existencie
vyhradený pamäťový priestor, ktorého veľkosť zodpovedá jej typu.
V deklarácii premennej uvádzame meno a typ premennej, ktorú chceme
v programe použiť. Identifikátor je vlastne symbolickou adresou
premennej. V jazyku C okrem typu premennej hovoríme aj
o pamäťovej triede, do ktorej premenná patrí: auto, extern, static, register. Tá určuje, do ktorej časti pamäte bude premenná kompilátorom umiestnená a tiež kde všade bude premenná viditeľná.
Pamäť, ktorú má program po spustení k dispozíci, je tvorená štyrmi oblasťami: kódový segment - kde sa ukladá vlastný kód programu (inštrukcie), dátový segment - oblasť, kde sú uložené globálne premenné (tie patria implicitne do triedy extern), zásobníkový segment
(stack) - oblasť pre lokálne premenné funkcií (ak nie sú
v deklarácii označené ako static, vtedy sa totiž uložia
v dátovej oblasti) a heap (hromada, halda) - voľná pamäť pre tzv. dynamické premenné.
Akcia, ktorou sa pre premennú vyhradzuje (prideľuje) potrebný pamäťový priestor sa nazýva alokácia. Rozlišujeme statickú a dynamickú alokáciu pamäte.
|