【问题标题】:How do I increase the stack size in Visual Studio C++?如何增加 Visual Studio C++ 中的堆栈大小?
【发布时间】:2020-08-28 23:39:48
【问题描述】:


我正在编写一个程序,其中需要计算 n x n 矩阵的条目 n=1000。

如果我在我的代码中写了以下两行,我会得到一个stackoverflow错误消息:

const int n = 1000;

double matrix[n][n];

错误信息:

Cubic spline.exe 中 0x010E1ED9 处的异常错误:0xC00000FD:堆栈溢出(参数:0x00000000、0x00292000)

我怎样才能增加堆栈大小,或者您认为还有其他方法可以解决问题吗?

【问题讨论】:

  • 为什么matrix 需要存在于堆栈中?
  • 对不起,我不明白这个问题。我对编程很陌生。通过研究,我认为问题在于堆栈大小。
  • 在这种情况下,您需要阅读一些内容。有一个精选的 C++ 书籍列表here
  • 你可以把它作为一个全局变量来解决这个问题。但是,我讨厌建议任何人这样做。
  • 请注意,这种方法不能很好地扩展。随着您深入编程并且必须编写更大或更复杂的程序,您会看到全局变量真的开始下降,希望您会接触到更好的方法like this one(这是其中一个链接中的第二个答案@drescherjm 张贴在上面)。哦,请注意蓝色语言。有些孩子可能会发现该评论。

标签: c++ matrix stack size overflow


【解决方案1】:

Visual Studio 使用 4KB 用于堆栈,但默认保留 1MB。例如,您可以在“配置属性”->链接器->系统->“堆栈保留大小”中将其更改为 10MB。

【讨论】:

    猜你喜欢
    • 2016-02-13
    • 1970-01-01
    • 2017-03-02
    • 2019-07-10
    • 2012-04-18
    • 2015-11-22
    • 2013-12-24
    • 2011-09-29
    相关资源
    最近更新 更多