VC++中的堆栈大小是多少?

use*_*595 5 c recursion stack callstack visual-c++

我想要有关VC++(32位和64位)中堆栈溢出的准确信息,特别是在递归中.在调试模式下,这种情况很快发生在递归中(如4500运行简单的递归函数不做任何事情或类似).但是,似乎发布模式不同.这很难理解,我现在没有测试它,因为优化会删除不做任何事情的代码(显然会删除递归),因为我的代码或函数是这样的......我应该做更多...我测量在优化版本中的正确时间,我不知道优化是否会通过递归实现更复杂的快速排序?

谢谢!

Rah*_*thi 7

正如Andreas Brinck 在其相关答案中所述:

在VC++中,我认为默认的堆栈大小是1 MB,因此递归深度为10.000,每个堆栈帧最多可以是~100个字节.

可以使用以下命令修改此堆栈大小限制:

项目→属性→配置属性→链接器→系统→堆栈保留大小.

项目→属性→配置属性→链接器→系统→堆栈保留大小.