Sobes.tech
Junior — Middle

Que consequências ocorrem se a pilha de chamadas ficar cheia?

sobes.tech IA

Resposta da IA

Se a pilha de chamadas transbordar (stack overflow), isso significa que o programa usou mais memória de pilha do que o sistema operacional alocou para o thread atual. Geralmente ocorre devido a uma recursão infinita ou demasiado profunda, ou por alocar uma quantidade excessiva de dados na pilha.

Consequências:

  • O programa terminará abruptamente com um erro StackOverflowException (em C#).
  • Pode haver perda de dados e encerramento incorreto.

Exemplo:

void RecursiveMethod() {
    RecursiveMethod(); // chamada infinita
}

// Ao chamar RecursiveMethod(), a pilha se encherá rapidamente e o programa falhará com StackOverflowException.

Para evitar o transbordamento de pilha, é necessário controlar a profundidade da recursão ou usar algoritmos iterativos.