Nav*_*Nav 2 c c++ stack-overflow memory-management
我想尝试一个更复杂的例子,在对象中使用new分配内存并在其中进一步分配,但需要确定何时会发生stackoverflow.所以决定尝试这个例子.我调用了foo()函数main()并期望它给出stackoverflow错误.它没有.在foo中,我将数组大小增加了几个零,并在foo中添加了40多个这样的数组声明.仍然没有崩溃.
我使用的是gcc版本4.4.2 20091027(Red Hat 4.4.2-7)(GCC).堆栈分配大约不应超过1MB会产生堆栈溢出错误吗?
void foo()
{
double x[100000000];
double x1[100000000];
double x2[100000000];
double x3[100000000];
double x4[100000000];
//...and many more
}
int main()
{
foo();
}
Run Code Online (Sandbox Code Playgroud)
编译为gcc -o test test.c