Junior — Middle
Jaké důsledky nastanou, pokud se zásobník volání přeteče?
sobes.tech AI
Odpověď od AI
Pokud se zásobník volání přeteče (stack overflow), znamená to, že program použil více paměti zásobníku, než mu operační systém přidělil pro aktuální vlákno. Obvykle k tomu dochází kvůli nekonečné nebo příliš hluboké rekurzi nebo kvůli přiřazení příliš velkého objemu dat na zásobník.
Důsledky:
- Program neočekávaně skončí s chybou StackOverflowException (v C#).
- Může dojít ke ztrátě dat a nesprávnému ukončení.
Příklad:
void RecursiveMethod() {
RecursiveMethod(); // nekonečný volání
}
// Při volání RecursiveMethod() se zásobník rychle zaplní a program spadne s chybou StackOverflowException.
Aby se zabránilo přetečení zásobníku, je třeba kontrolovat hloubku rekurze nebo používat iterativní algoritmy.