我尝试制作结构数组。 Struct包含两个二维数组(100x100)。如果我想制作30个或更多结构的数组,则会发生错误 - “分段错误”。我正在使用CodeBlocks和MINGW编译器。 代码:
<a href="#" id="exitLink" data-toggle="modal" data-target="#endsession_confirm">Exit</a>
<div class="modal fade in" id="endsession_confirm" tabindex="-1" role="dialog" aria-labelledby="endsession_confirm" aria-hidden="false">
答案 0 :(得分:1)
您正在分配大约2.4到4.8 MB的堆栈空间。
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
)。
答案 1 :(得分:0)