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.