如何在Code :: Blocks中增加堆栈大小?
我已阅读this,并说VS中的默认堆栈大小为1MB。现在就我而言,它与VS无关,而且堆栈大小与操作系统有关。在我的win10案例中它是1MB。
This似乎有点过时了:project->build options->linker settings->other linker options
不再存在。
项目栏下没有构建。
无论如何,我需要增加堆栈大小,以便我可以声明一个巨大的二维char数组并从缓存中受益。像arr[1000][1000]
一样。因为它将在连续的内存上,而不是char* arr[100]
,它将指向包含1000个字节的1000个不同的内存地址。
我正在使用Windows 10 mingw编译器。
答案 0 :(得分:4)
默认大小来自.exe,而不是操作系统。
来自MSDN:
保留和最初提交的堆栈内存的默认大小 在可执行文件头中指定。
具体而言,堆栈保留和提交大小在PE文件的IMAGE_OPTIONAL_HEADER
结构中指定。通常可以使用链接器参数将其设置为特定值。使用MinGW工具链,您可以尝试使用-Wl,--stack,52428800
作为gcc参数。您正在使用的IDE中可能存在此选项,只需查找构建和/或链接器设置。
这适用于第一个线程,如果您在调用CreateThread
时指定非零值,其他线程可以覆盖默认值。