结构数组的最大大小
Maximum size of array of structs
我尝试使数组的结构。结构包含两个二维数组(100x100)。如果我想使数组的30或更多的结构错误发生-"分割故障"。我使用CodeBlocks与MINGW编译器。代码:
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;
}
如果这不是你想要的,这个SO问题涵盖了"如何"增加堆栈空间(gcc -Wl,--stack,<size>
)。
在Linux上,也有ulimit -s
设置的全局限制。
这个问题涵盖了Windows/VisualStudio (editbin /STACK:reserve[,commit] program.exe
)。
您正在对堆栈进行大量分配。要么增加堆栈大小,要么以其他方式分配对象(静态或malloc)。
看devc++ (Mingw)栈限制
相关文章:
- 从函数中全局删除并重新实例化数组结构,而无需在编译时知道数组的大小
- 如何使用函数的输出初始化 const 数组结构字段?
- 传递数组结构、ofstream 和 interger 以运行
- 从文本文件中读取并输入到数组结构中,然后显示读取的数据C++
- 将文本文件读取到数组结构中
- C/C++中数组结构和数组结构的通用接口
- C++ MDC final-在字符类型的数组结构中按字母顺序对记录中的名称进行排序
- C++ 使用数组结构创建平衡的二叉搜索树
- C++:释放动态数组(结构成员)和指向此结构的指针的方法
- 使用 vector 在 c++ 中声明 3D 数组结构
- 数组结构无法正确打印
- 如何在C++中访问数组结构内部的数组结构
- CIN进入数组结构似乎什么也没输入
- ifstream将数组结构到txt文件中,然后尽可能将其提取为数组
- wlanapi-将WlanFreeMemory释放其WLAN_INTERFACE_INFO数组结构
- 显示数组结构 c++
- C++ 使用函数访问数组结构的方法是什么?
- 将庞大的数组结构复制到 GPU
- 如何封送包含字符矩阵的数组结构
- C++多维数组结构的对齐