7. Alokácia pamäte
7.3 Dynamická alokácia, dynamické premenné
Nevýhody statických premenných odstraňuje dynamická
alokácia, ktorá umožňuje programátorovi alokovať pamäť požadovanej
veľkosti kedykoľvek v priebehu vykonávania programu. Pamäť pre
dynamické premenné sa alokuje na hromade (heape).
Dynamické premenné vznikajú a zanikajú počas realizácie programu.
Môžeme ich v príkazovej časti programu podľa potreby nielen vytvárať,
ale aj rušiť a nemožno ich preto zavádzať do programu deklaráciou
premenných a zabezpečiť prístup k ich hodnotám pomocou identifikátora. Sprístupnenie dynamických premenných sa preto realizuje nepriamo práve pomocou ukazovateľov!
Už
sme spomenuli, že pamäť pre lokálne premenné funkcií sa alokuje
v zásobníku pri volaní funkcie. Lokálne premenné vznikajú vstupom
do funkcie, po jej skončení zanikajú (ak nie sú z pamäťovej triedy
static). Uvoľnená pamäť može byť použitá na iné účely, napr. lokálne
premenné inej, práve prebiehajúcej funkcie. Aj v tomto prípade ide teda
o dynamickú alokáciu, o ktorú sa však ale za nás postará
operačný systém.
|