【发布时间】:2014-01-24 12:35:36
【问题描述】:
我编写了以下代码,它打印一个数组。但是当输入非常大时,例如 J=40000,我得到分段错误。你能告诉我为什么会这样吗?这是因为数组的维度太大,还是我做错了什么?
int main(){
int i,j,J;
printf("Give the number J: \n");
scanf("%d", &J);
double k[J-1];
double d[J-1];
double p[J-1];
double A[J-1][3];
double h=1.0/(double)J;
for(j=0; j<J-1; j++){
k[j]=-1.0/(h*h);
d[j]=2.0/(h*h);
p[j]=-1.0/(h*h);
}
for(j=0; j<J-1; j++){
A[j][0]=k[j];
A[j][1]=d[j];
A[j][2]=p[j];
}
A[0][0]=0.0;
A[J-2][2]=0.0;
for(j=0; j<J-1; j++){
for(i=0; i<3; i++){
printf("%lf ",A[j][i]);
}
printf("\n\n");
}
return 0;
}
【问题讨论】: