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.
|