如何使用 vscode 在 C++ 中增加最大堆栈大小

How to increase max stack size in c++ using vscode

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

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

在像 Google Hashcode、Facebook Hackercup 这样的编程竞赛中,他们提供了大量的输入,如果我 运行 在我的机器中输入它面对 分段错误/Whosebug 问题。

现在我需要的是增加最大筹码量

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

  1. g++ -O2 -std=c++11 -Wall -Wl,--stack=268435456 Untitled1.cpp -o a.exe 当我在 windows 命令提示符下使用这个命令时它工作得很好。但是它在 vscode 终端中给出了错误(我不知道为什么。)我找到了这个命令 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

应该可以。