Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Razões para Stack Overflow
estouro de pilha é um erro de aplicativo que ocorre sempre que há muita memória alocada na pilha de chamadas em tempo de execução de um aplicativo. No sistema operacional , esta pilha de chamadas é, literalmente, uma "pilha de memória ", no qual as variáveis ​​de programação e chamadas de procedimento são armazenados para uso dentro do escopo atual de execução. As principais causas de estouro de pilha de recursão são variáveis ​​e pilha infinitas que são muito grandes . Uma terceira causa , embora de forma menos provável , pode ocorrer devido a perda do ponteiro de pilha em memória . Recursão Infinita

infinita recursão faz com que a pilha de chamadas para transbordar na maioria das linguagens de computador. Quando um procedimento ou função chama um outro procedimento ou função , a informação anterior sobre a pilha de chamadas é mantido e as informações da nova função é alocada no topo da pilha. Quando uma função que chama a si mesma recursivamente sem um meio claro de rescisão, a aplicação irá alocar mais memória para a pilha de forma contínua até que mais memória é alocada a disponível na pilha, resultando em estouro de pilha.
Muito grandes variáveis ​​de pilha

variáveis ​​que são declaradas na pilha incluem variáveis ​​de entrada em um procedimento, o valor de retorno para o procedimento e nenhum membro variáveis ​​usadas nos cálculos. Isso pode resultar em estouro de pilha se o tamanho combinado da chamada de procedimento e suas variáveis ​​é maior do que a memória de pilha disponível.
Pointer Stack Loss

Stack perda ponteiro ocorre sempre que a memória na pilha torna-se corrompido . Isso pode ocorrer ao tentar acessar as funções ou dados na memória que já foram apuradas , por exemplo. Se isso acontecer, uma forma única de recursão ocorre , resultando na aplicação tentando descobrir a informação de base de um determinado conjunto de dados . Porque a informação tecnicamente não existe , o comportamento da aplicação torna-se indefinida, e um fluxo interminável de chamadas de função tornam-se possíveis . Essa limitação ocorre principalmente somente em de baixo nível, linguagens orientadas a objetos , como C + +.

Anterior :

Próximo : No
  Os artigos relacionados
·Como converter arquivos Olympus DSS 
·Como Ctrl + Alt + Del um PC remoto 
·Vantagens e Desvantagens do Turbo Pascal 
·Como usar o Force Feedback Com GTA IV para a Xbox 
·Como escrever código para criar uma classe Circle 
·Como criar meu próprio site Coaster de graça 
·Como executar um procedimento armazenado Oracle a parti…
·Como aprender UML 2.0 Online 
·Como exibir uma lista de pontos em WPF 
·Como aprender XHTML para Iniciantes 
  Artigos em destaque
·Como vincular dados em Grid View 
·Como abrir um PDF em C # 
·Como forçar uma chamada Destructor em C + + Net 
·Como testar o Linkage Aprovada em COBOL 
·Como excluir um arquivo em C 
·Como aprender User Interface Design 
·A matriz ColdFusion não está limpando 
·Como devolver um vetor STL De uma Nova Função 
·Como retornar um ponteiro para um vetor 
·Como calcular o Big Endian Integer Valor 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados