você pode definir o tamanho da pilha de chamadas em C ++? (VS2008)
Pergunta
Eu estou trabalhando a partir de um exemplo pedaço de código que aloca uma relativamente grande variedade local. (32768 para ser preciso) Quando eu tento o mesmo que eu estou recebendo um comportamento que parece ser um estouro de pilha. Agora eu queria saber se meu exemplo talvez tenha definido a pilha para ser maior do que a minha candidatura. Isso é possível? se assim como?
Solução
Com o compilador da Microsoft você pode usar / F para definir o tamanho da pilha, no entanto, parece que você deve apenas alocar o objeto na pilha. Você deve ter uma razão que você está alocando esta na pilha em vez da pilha.
Edit: Esta página dá uma boa cruzada quebra de plataforma, embora possa ser datada.
Outras dicas
Você pode usar o F flag / compilador para definir o tamanho da pilha padrão, ou especificá-lo como o segundo parâmetro para o função CreateThread .
Ao invés de mexer com com o tamanho da pilha, por que você não simplesmente usar um std :: vector ou até mesmo alocar dinamicamente um array si mesmo?
Você pode criar um novo segmento para este trabalho. geralmente você pode especificar o tamanho da pilha ao criar um segmento, e, certamente, com a função CreateThread()
das vs2008