gpt4 book ai didi

c++ - 默认堆栈大小

转载 作者:行者123 更新时间:2023-12-02 10:33:53 25 4
gpt4 key购买 nike

如何在Code::Blocks中增加堆栈大小?

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

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

项目栏下没有构建。

无论如何,我需要增加堆栈大小,以便可以声明巨大的二维char数组并从缓存中受益。像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.



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

这适用于第一个线程,如果在调用 CreateThread时指定了非零值,则其他线程可以覆盖默认值。

关于c++ - 默认堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61171165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com