7. Alokácia pamäte

7.2 Statická alokácia, statické premenné

Statickú alokáciu využívame zatiaľ asi častejšie. Ak vieme prekladaču vopred povedať, aké budeme mať v programe pamäťové nároky (napr. budeme potrebovať dve premenné typu int, pole záznamov s 50 prvkami a pod.), postačí, keď deklarujeme potrebné premenné v úvode programu (v C ešte pred funkciou main, v Pascale v úvode programu v časti definícií a deklarácií). O vyhradenie potrebnej pamäte sa postará prekladač.

Premenné, pre ktoré sa pamäť alokuje staticky, nazývame statické premenné. Ide o globálne premenné a v C tiež o lokálne premenné označené ako static. Pre statické premenné sa alokuje miesto v dátovej oblasti a to hneď na začiatku spustenia programu, existujú v priebehu vykonávania programu a zanikajú až po skončení programu, keď sa odovzdá riadenie späť operačnému systému a tento všetky statické alokácie naraz zruší.

Statická alokácia nám však nemusí vždy vyhovovať. Skutočnosť, že pre statické premenné je v pamäti vyhradené miesto v priebehu vykonávania programu natrvalo (až do skončenia programu), môže nepriaznivo vplývať napr. na obsadenie pamäte – často ju zaťažujeme zvlášť pri práci s poliami, kde musíme vopred nastaviť maximálny (často len teoreticky využiteľný) rozsah alebo pamäť zbytočne „okupujú“ premenné, ktoré sme použili len pri nejkom pomocnom výpočte a pre ďalší chod programu už nie sú potrebné.