1

対称行列を生成するための次の関数があります。

void genMatrix(int n, double A[n][n])
 {

int i,j;
int count=0;
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
    {
    count++;
    A[i][j]=count;
    A[j][i]=count;
    }

 }

これらのパラメーターを使用して関数を呼び出すと:

int n = 10000;
double A[n][n];
genMatrix(n,A);

セグメンテーション違反が発生しますが、その理由がわかりません。また、マトリックスに1つの値のみを入力しようとしましたが、何も変わりません。何が問題なのですか?1000 のような小さな n 値を使用すると、正常に動作します。

4

5 に答える 5