在许多动态规划和图问题中,需要进行长深度递归。
我目前在 Windows 中使用 vscode 和 mingw 来执行我的 C++ 程序。 但默认情况下,据我所知,Windows 的最大堆栈大小为 1MB。因此我遇到了段错误/堆栈溢出问题。我很清楚我可以更改循环中的每个递归,但我不想要那些东西。
在一些编程竞赛中,例如Google Hashcode、Facebook Hackercup,他们会提供大量输入,如果我在我的机器上运行该输入,则会面临段错误/堆栈溢出问题。
现在我需要的是增加最大堆栈大小。
我找到了一些方法,这是我的问题。
g++ -O2 -std=c++11 -Wall -Wl,--stack=268435456 Untitled1.cpp -o a.exe
当我使用此命令时,效果很好在 Windows 命令提示符下。但它在 vscode 终端中给出错误(我不知道为什么。)我发现这个命令 here.我在某个地方找到了
#pragma comment(linker, "/STACK:2000000")
,但我并没有清楚地理解这一点。是否有办法在 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/