1
実行時にセグメンテーション違反が発生しました。Cでscanfを使用したバグ入力2d配列
int size;
scanf("%d",&size);
int init[size][size];
//initial matrix
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
scanf("%d",init[i][j]);
実行時にセグメンテーション違反が発生しました。Cでscanfを使用したバグ入力2d配列
int size;
scanf("%d",&size);
int init[size][size];
//initial matrix
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
scanf("%d",init[i][j]);
あなたは&init[i][j]
いうよりscanf()
でinit[i][j]
必要です。
でも動作しますが、init [i] [j]もinit [i] [j]のアドレスを指していると思います。 –
私はそれをポインタ算術と混ぜ合わせると思います。 init + i * size + jは実際に* intになりますが、init [i] [j]は配列要素を与えます。これはintです。 – qrdl