如何增加 Code::Blocks 中的堆栈大小?
我读过 this它说 VS 中的默认堆栈大小是 1MB。现在就我而言,它与 VS 无关,堆栈大小取决于操作系统。在我的 win10 情况下是 1MB。
This以下内容似乎有点过时:project->build options->linker settings->other linker options
doesn't exist no more.
项目栏下没有构建。
无论如何,我需要增加我的堆栈大小,以便我可以声明一个巨大的二维字符数组并从缓存中受益。像 arr[1000][1000]
。与 char* arr[100]
不同,它将位于连续内存中,后者将指向包含 1000 个字节的 1000 个不同的内存地址。
我正在使用 Windows 10 mingw 编译器。
最佳答案
默认大小来自 .exe,而不是操作系统。
来自 MSDN :
The default size for the reserved and initially committed stack memory is specified in the executable file header.
具体来说,堆栈保留和提交大小在 IMAGE_OPTIONAL_HEADER
中指定。 PE文件中的结构。通常可以使用链接器参数将其设置为特定值。使用 MinGW 工具链,您可以尝试像 -Wl,--stack,52428800
这样的东西作为 gcc 参数。您正在使用的 IDE 中可能存在此选项,只需查找构建和/或链接器设置即可。
这适用于第一个线程,如果您在调用 CreateThread
时指定非零值,其他线程可以覆盖默认值。
关于c++ - 默认堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42420727/