gpt4 book ai didi

c++ - 结构数组的最大大小

转载 作者:搜寻专家 更新时间:2023-10-31 01:38:45 25 4
gpt4 key购买 nike

我尝试制作结构数组。结构包含两个二维数组 (100x100)。如果我想制作 30 个或更多结构的数组,则会发生错误 - “段错误”。我在 MINGW 编译器中使用 CodeBlocks。代码:

struct gracze
{
int pole1[100][100];
int pole2[100][100];
};


int main()
{
gracze gracz[30];

return 0;
}

最佳答案

您正在分配大约 2.4 到 4.8 兆字节的堆栈空间。

IIRC,MinGW 的默认堆栈大小约为 2 MB,即您超出了堆栈空间,需要增加它——如果您确实想要使用如此大的堆栈分配而不是例如动态分配内存:

#include <stdlib.h>

int main()
{
gracze * gracz;
if ( ( gracz = malloc( sizeof( gracze ) * 30 ) ) != NULL )
{
// stuff
free( gracze );
}
return 0;
}

如果这不是您要找的,this SO question涵盖了增加堆栈空间的“方式”(gcc -Wl,--stack,<size>)。

在 Linux 上,还有 ulimit -s 设置的全局限制。 .

This SuperUser question涵盖 Windows/VisualStudio ( editbin /STACK:reserve[,commit] program.exe )。

关于c++ - 结构数组的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335903/

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