【问题标题】:bug-input 2d array using scanf in C在 C 中使用 scanf 错误输入二维数组
【发布时间】:2009-08-24 08:21:13
【问题描述】:

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

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 arrays


    【解决方案1】:

    您需要&amp;init[i][j] 而不是scanf() 中的init[i][j]

    【讨论】:

    • 它有效,但我认为 init[i][j] 也指向 init[i][j] 的地址。
    • 我认为您将它与指针算术混合在一起。 init+i*size+j 确实是 *int,但是 init[i][j] 会给你数组元素,它是 int。
    猜你喜欢
    • 2014-12-20
    • 1970-01-01
    • 2022-09-29
    • 2010-09-26
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多