我有一个程序需要在C中声明一个大小为1000000的大整数数组(使用GNU GCC编译器)。我试图用两种不同的方式声明数组。主函数内部大量内存的静态分配
两种可能的代码是:
#include <stdio.h>
int arr[1000000];
int main()
{
return 0;
}
和
#include <stdio.h>
int main()
{
int arr[1000000];
return 0;
}
后者版本运行期间挂起。可能的原因是什么?
非常感谢!
如果需要,您通常可以将堆栈大小上移到gcc编译器选项。你应该可以让gcc在编译过程中标记堆栈溢出。 – Paul 2009-12-12 06:18:51
@Paul当然,由于单独编译,大多数堆栈溢出只能在链接时标记出来? – 2009-12-12 11:22:50
@Pascal:只有一些...递归使其不确定 - 你永远不知道运行时有多深 – 2009-12-12 13:39:11