c++ - 如何使用 vscode 增加 C++ 中的最大堆栈大小

标签 c++ visual-studio-code mingw stack-overflow

在许多动态规划和图问题中,需要进行长深度递归。

我目前在 Windows 中使用 vscodemingw 来执行我的 C++ 程序。 但默认情况下,据我所知,Windows 的最大堆栈大小为 1MB。因此我遇到了段错误/堆栈溢出问题。我很清楚我可以更改循环中的每个递归,但我不想要那些东西。

在一些编程竞赛中,例如Google Hashcode、Facebook Hackercup,他们会提供大量输入,如果我在我的机器上运行该输入,则会面临段错误/堆栈溢出问题。

现在我需要的是增加最大堆栈大小

我找到了一些方法,这是我的问题。

  1. g++ -O2 -std=c++11 -Wall -Wl,--stack=268435456 Untitled1.cpp -o a.exe 当我使用此命令时,效果很好在 Windows 命令提示符下。但它在 vscode 终端中给出错误(我不知道为什么。)我发现这个命令 here. enter image description here

  2. 我在某个地方找到了#pragma comment(linker, "/STACK:2000000"),但我并没有清楚地理解这一点。

  3. 是否有办法在 vscode 中更改一次最大堆栈大小,以便我不需要每次编译时都指定?

我只是想增加最大堆栈大小,

最佳答案

VSCode 使用 powershell 作为其 shell,逗号是 powershell 的特殊字符。您需要将它们放在引号内。

g++ -O2 -std=c++11 -Wall "-Wl,--stack=268435456" Untitled1.cpp -o a.exe

应该可以。

关于c++ - 如何使用 vscode 增加 C++ 中的最大堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63134299/

相关文章:

c++ - 重载 << 运算符导致无输出

c++ - 方法参数中的动态类型匹配

c - 为什么我的 omp.h 路径未被识别?

c++ - 解决随机崩溃

c++ - 如何实现一个简单的关系数据库?

python - 如何计算具有三角形面的网格的质心?

c++ - 在 VSCode Insiders 中运行 C++ Jupyter Notebook

visual-studio-code - VSCode : How do I search and replace text in only opened files?

vim - 使用 MinGW 构建 vim

c++ - 膨胀的 EXE 大小,以及不需要的 Qt/MingW 依赖项