我用C语言编写的程序为什么会在运行时程序崩溃

#include<stdio.h>
main()
{
int a,b,c,d[10000][10000]={0};
scanf("%d",&a);
for(b=0;b<a;b++)
d[b][0]=1;
for(b=1;b<a;b++)
for(c=1;c<a;c++)
d[b][c]=d[b-1][c-1]+d[b-1][c];
for(b=0;b<a;b++)
{
for(c=0;c<a;c++)
printf("%d ",d[b][c]);
printf("\n");
}
}

建议把数组改小点
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-23
局部变量 d[10000][10000] 所占空间太大,程序的 stack 上分配 时导致 溢出。
解决:d 定义成指针,运行时 malloc 从 heap 上申请内存,用完 free 释放 。
或减小 数组的大小。
第2个回答  2014-11-23
数组太大,写在函数外面
相似回答
大家正在搜