Junior — Middle
Čo sa rozumie pod pretečením zásobníka pri spustení programu?
sobes.tech AI
Odpoveď od AI
Pretečenie zásobníka (stack overflow) nastáva, keď program využije viac pamäte zásobníka, než mu operačný systém pridelil. Zvyčajne k tomu dôjde kvôli nekonečnej alebo veľmi hlbokej rekurzii, alebo pri alokácii príliš veľkých lokálnych premenných.
Zásobník je oblasť pamäte, kde sú uložené lokálne premenné a adresy návratu funkcií. Ak sa zásobník pretečie, program neočakávane skončí s chybou.
Príklad nekonečnej rekurzie spôsobujúcej pretečenie zásobníka:
void Recursive()
{
Recursive(); // volanie samo seba bez podmienky ukončenia
}
Recursive();
Aby ste predišli pretečeniu zásobníka, je potrebné kontrolovať hĺbku rekurzie a veľkosť lokálnych dát.