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.