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.