Junior — Middle
O que pode levar a um estouro de pilha num programa?
sobes.tech IA
Resposta da IA
O estouro de pilha (stack overflow) ocorre quando a pilha de chamadas enche devido a uma recursão demasiado profunda ou chamadas infinitas de funções.
Principais causas:
- Recursão infinita — a função chama a si mesma sem uma condição de saída.
- Recursão demasiado profunda — mesmo com uma condição de saída, mas a profundidade das chamadas é demasiado grande (por exemplo, ao processar grandes estruturas de dados).
- Chamadas cíclicas de funções — funções que se chamam mutuamente em ciclo sem saída.
Exemplo de recursão infinita em C#:
void Recursive()
{
Recursive(); // sem condição de saída
}
Recursive();
Para evitar o estouro de pilha, deve sempre ter uma condição de saída correta para a recursão ou usar algoritmos iterativos se a profundidade das chamadas puder ser grande.