次のスクリプトを実行すると、セグメント化エラーが発生します。出力は「ここで5a」で構成されます。しかしそれ以上のものはありません。何が間違っているかもしれないかに関する提案はありますか?ループ内で起こっているセグメント違反の判断に役立つ必要がありますか?
if(model==1)
fptr3=fopen("poisson.pro","r");
if(model==2)
fptr3=fopen("jtt.pro","r");
if(model==3)
fptr3=fopen("estimate.pro","r");
printf ("here 5a\n");
for (i=0;i<20;i++)
fscanf(fptr3,"%lf", &freq[i]);
printf ("here 5ai\n");
for (i=0;i<20;i++)
{
printf ("here 5b\n");
for (j=0;j<20;j++)
{
printf ("here 5c\n");
fscanf(fptr3,"%lf", &prob[i][j]);
if(model==3)
prob[i][j]=prob[i][j]/10000.0;
}
}
UPDATE
double freq[20], prob[20][20];
あなたは実際に20を使用していますか、それとも例のためだけですか?スタックに大きな配列を割り当てることはできません。 – Ben
@Ben:私は実際に20を使っています。 – shubster