如何在c ++中增加堆栈大小?

时间:2016-10-18 12:21:33

标签: c++ stack

当我编译100000输入数组的代码时,它不会给出任何错误。但是,当我将输入增加到500000时,会出现堆栈溢出错误。我需要增加堆栈大小。我该怎么办?

2 个答案:

答案 0 :(得分:2)

不要依赖具有自动存储持续时间的大型阵列。 C ++标准并未强制限制此类数组的大小,但与使用其他方法分配的内存量相比,大多数实现的限制都非常小。

在您的情况下,std::vector<T> T是元素类型,是合适的。

答案 1 :(得分:0)

问题的答案是检查编译器的文档。通常可以选择设置最大堆栈大小。默认值通常非常小,因为结构良好的程序具有树状调用结构,因此堆栈采用对数方式随程序大小和复杂性增长。对于普通程序,您不需要太多堆栈。

然而,正如其他人所说,真正的答案可能是将数据从堆栈移到堆上。