Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

14. Dynamické proměnné.

Dynamická alokace paměti:
V programu můžeme za běhu (dynamicky) přidělovat oblasti paměti různým proměnným. Přidělená paměť má určenou délku a není pojmenovaná,neboli nemá žádný identifikátor.Přistupuje se do ní pomocí ukazatelů (pointerů).

Dynamické přidělování používáme tehdy,pokud nevíme předem,kolik paměti na data využijeme (např. databáze),nebo budeme za běhu programu vytvářet proměnnou,jejíž velikost bude záviset na hodnotě jiné proměnné.(Pokud bychom zadali pevnou velikost,dynamická alokace ztrácí smysl a je lepší použít typ pole).

K proměnné v takovém případě přistupujeme přes ukazatel. Deklarace ukazatele je stejná, jako normální deklarace ukazatele a pro alokaci paměti se používá operátor new . V takovém případě je po ukončení používání potřeba alokovanou proměnnou zrušit operátorem delete . Obdoba new a delete je v C malloc a free . Není správné ale používat funkce malloc a free , protože jen alokují paměť. Narozdíl od toho new navíc zavolá konstruktor a delete zavolá destruktor (pokud pracujeme se třídou).

Příklad se strukturou, třídy jsou až dál:

struct CD{
int cislo;
};

void main()
{
CD *ukazatel;
ukazatel = new CD;
ukazatel->cislo = 10;
delete ukazatel;
}

Žádné komentáře:

Okomentovat