默认堆栈大小

Default stack size

如何在 Code::Blocks 中增加筹码量?

我读过 this,它说 VS 中的默认堆栈大小是 1MB。现在就我而言,它与 VS 无关,堆栈大小取决于 OS。在我的 win10 情况下是 1MB。

This 似乎有点过时,如下所示:project->build options->linker settings->other linker options 不再存在。

项目栏下没有构建。

无论如何,我需要增加堆栈大小,以便声明一个巨大的二维字符数组并从缓存中受益。喜欢arr[1000][1000]。因为它将在连续的内存上,不像 char* arr[100] 将指向包含 1000 个字节的 1000 个不同的内存地址。

我正在使用 Windows 10 mingw 编译器。

默认大小来自 .exe,而不是 OS。

来自MSDN

The default size for the reserved and initially committed stack memory is specified in the executable file header.

具体来说,堆栈保留和提交大小在 PE 文件的 IMAGE_OPTIONAL_HEADER 结构中指定。通常可以使用链接器参数将其设置为特定值。使用 MinGW 工具链,您可以尝试将 -Wl,--stack,52428800 之类的东西作为 gcc 参数。此选项可能存在于您正在使用的 IDE 中,只需查找构建 and/or 链接器设置。

这适用于第一个线程,如果您在调用 CreateThread.

时指定非零值,则其他线程可以覆盖默认值