Sobes.tech
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.