¿Puedes establecer el tamaño de la pila de llamadas en c ++? (vs2008)
Pregunta
Estoy trabajando desde un fragmento de código de ejemplo que asigna una matriz local relativamente grande. (32768 para ser precisos) Cuando intento lo mismo, obtengo un comportamiento que parece ser un desbordamiento de pila. Ahora me preguntaba si mi ejemplo tal vez haya configurado la pila para que sea más grande que mi aplicación. es posible? Si es así, ¿cómo?
Solución
Con el compilador de Microsoft puede usar / F para establecer el tamaño de la pila, sin embargo, parece que solo debes asignar el objeto en el montón. Debería tener una razón por la que está asignando esto en la pila en lugar del montón.
Editar: Esta página proporciona una buena cruzada Desglose de la plataforma, aunque puede estar fechado.
Otros consejos
Puede usar el indicador del compilador / F para establecer el tamaño de pila predeterminado, o especificarlo como el segundo parámetro de CreateThread .
En lugar de meterse con el tamaño de la pila, ¿por qué no simplemente usas un std :: vector o incluso asignas dinámicamente una matriz?
Podrías crear un nuevo hilo para este trabajo. En general, puede especificar el tamaño de la pila al crear un hilo y, ciertamente, con la función CreateThread ()
de vs2008