在C中使用scanf输入2d数组的错误

在C中使用scanf输入2d数组的错误,c,arrays,C,Arrays,这有什么问题?我在运行时遇到分段错误 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]); int大小; scanf(“%d”,大小(&S); int init[size][size]; //初始矩阵 对于(int i=0;i你需要&i

这有什么问题?我在运行时遇到分段错误

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]);
int大小;
scanf(“%d”,大小(&S);
int init[size][size];
//初始矩阵

对于(int i=0;i你需要
&init[i][j]
而不是
scanf()
中的
init[i][j]
,它可以工作,但我认为init[i][j]也指向init[i][j]的地址。我想你可以把它和指针算法混合在一起。init+i*size+j确实是*int,但init[i][j]会给你数组元素,即int。