你能用c ++设置调用堆栈的大小吗? (VS2008)

时间:2009-03-09 08:35:57

标签: c++ callstack

我正在使用一个分配相对较大的本地数组的示例代码。 (确切地说32768)当我尝试相同的时候,我得到的行为似乎是堆栈溢出。现在我想知道我的示例是否可能将堆栈设置为比我的应用程序更大。这可能吗?如果是这样的话?

4 个答案:

答案 0 :(得分:3)

使用Microsoft编译器,您可以使用/F来设置堆栈大小,但是您似乎应该只在堆上分配对象。您应该有理由在堆栈而不是堆上分配它。

编辑:This page提供了一个很好的跨平台细分,但可能会过时。

答案 1 :(得分:1)

您可以使用/ F编译器标志设置默认堆栈大小,或将其指定为CreateThread函数的第二个参数。

答案 2 :(得分:0)

为什么不简单地使用std :: vector甚至自己动态分配数组?

而不是乱用堆栈大小。

答案 3 :(得分:0)

您可以为此工作创建新主题。您通常可以在创建线程时指定堆栈的大小,当然还可以使用vs2008的CreateThread()函数