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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top