C (programovací jazyk): Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
Riadok 174:
* [[Statická alokácia pamäte]]: priestor pre objekty je poskytovaný v binárnom odtlačku programu počas kompilácie; tieto objekty majú [[životnosť (informatika)|životnosť]] takú dlhú ako binárny kód, ktorý ich obsahuje
* [[Automatická alokácia pamäte]]: dočasné objekty je možné uložiť do [[zásobník (informatika)|zásobníka]], tento priestor sa automaticky uvoľňuje a je možné ho znovu použiť potom, ako vykonávanie programu opustí blok, v ktorom je objekt definovaný
* [[Dynamická alokácia pamäte]]: bloky pamäte ľubovoľnej veľkosti je možné vyžiadať počas behu programu použitím knižničných funkcií <code>[[malloc|malloc()]]</code>, <code>[[alloc|alloc()]]</code>, <code>[[realloc|realloc()]]</code> a <code>[[
Tieto tri prístupy majú svoje výhody v rôznych situáciách a majú rôzne nevýhody. Napríklad statická alokácia pamäte nemá žiadne dodatočné náklady na alokáciu (no pri nej sa nedá meniť rozsah alokovanej pamäte), automatická alokácia má malé náklady počas inicializácie a dynamická alokácia má potenciál veľkých nákladov na alokáciu aj uvoľnenie. Na druhej strane priestor zásobníka je zvyčajne oveľa obmedzenejší ako statická pamäť alebo priestor haldy a iba dynamická alokácia umožňuje alokáciu objektov, ktorých veľkosť je známa až počas behu programu. Väčšina programov v C využíva všetky tri spôsoby.
|