Junior — Middle
Ce se înțelege prin depășirea stivei în timpul executării unui program?
sobes.tech AI
Răspuns de la AI
Depășirea stivei (stack overflow) apare atunci când un program utilizează mai multă memorie de stivă decât cea alocată de sistemul de operare. De obicei, acest lucru se întâmplă din cauza unei recursii infinite sau foarte profunde, sau din cauza alocării unor variabile locale prea mari.
Stiva este o zonă de memorie unde sunt stocate variabilele locale și adresele de returnare ale funcțiilor. Dacă stiva se umple, programul se încheie brusc cu o eroare.
Exemplu de recursie infinită care cauzează depășirea stivei:
void Recursive()
{
Recursive(); // apelare a propriei funcții fără condiție de ieșire
}
Recursive();
Pentru a evita depășirea stivei, trebuie să controlezi adâncimea recursiei și dimensiunea datelor locale.