Sobes.tech
Junior

Co je zásobník a halda?

sobes.tech AI

Odpověď od AI

  • Zásobník (Stack) - je oblast paměti používaná pro ukládání lokálních proměnných, parametrů funkcí a adres návratu při volání funkcí.
    • Je automaticky řízen kompilátorem.
    • Přístup k datům je rychlý.
    • Velikost je pevná během kompilace (nebo je určena při volání funkce).
    • Data jsou přidávána a odstraňována v pořadí LIFO (poslední dovnitř, první ven).
  • Heap (halda) - je oblast paměti používaná pro dynamické alokace paměti.
    • Je ručně řízena vývojářem (například přes alloc, malloc nebo vlastnictví v ARC/Swift).
    • Přístup k datům může být pomalejší kvůli hledání volných bloků paměti.
    • Velikost se může měnit během běhu programu.
    • Data mohou být přidávána nebo odstraňována v libovolném pořadí.
Vlastnost Zásobník Halda
Řízení Automatické (kompilátor) Ruční/polouzavřené (ARC)
Rychlost přístupu Rychlý Potenciálně pomalejší
Velikost Pevná/určená při volání Mění se během běhu programu
Pořadí LIFO Libovolné
Ukládá Lokální proměnné, parametry, adresy návratu Dynamicky alokované objekty