【问题标题】:How can I increase stack size in c++?如何在 C++ 中增加堆栈大小?
【发布时间】:2016-10-18 12:21:32
【问题描述】:

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

【问题讨论】:

标签: c++ stack


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

问题的答案是检查编译器的文档。通常有一个设置最大堆栈大小的选项。默认值通常很小,因为结构良好的程序具有树状调用结构,因此堆栈占用随程序大小和复杂性呈对数增长。普通程序不需要太多堆栈。

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

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 2012-04-18
    • 2020-08-28
    • 2015-11-22
    • 2013-12-24
    • 2011-09-29
    • 2020-11-17
    • 2010-11-24
    相关资源
    最近更新 更多