8. Dynamické premenné
8.3 Zrušenie dynamickej premennej, funkcia free
Uvoľňovanie pamäte je opačná akcia než jej
prideľovanie. Platí všeobecná zásada, že dynamicky alokovanú pamäť,
ktorú už nepotrebujeme, uvoľníme ihneď a nečakáme až na koniec
programu. Ak sme dynamickú premennú vytvorili pomocou funkcie malloc , na jej zrušenie je potrebné použiť funkciu free . Funkcia free
má jediný parameter a to pointer na typ void, ktorý ukazuje na začiatok
alokovaného bloku. Zrušením dynamickej premennej vrátime už nepotrebnú
pamäť späť do heapu.
Predpokladajme, že sme niekde v programe vytvorili dynamickú premennú typu char príkazom
p = (char*)malloc(sizeof(char));
a na inom mieste ju chceme zrušiť. Urobíme to príkazom
free((void*)p);
Pointer
na char sme museli pretypovať na pointer na void! Pamäťový priestor,
ktorý zaberala dynamická premenná na ktorú pointer p ukazoval, sa dal k dispozícii na ďalšie použitie.
|