2d矩阵上的c程序每次都会崩溃

时间:2013-01-01 11:45:30

标签: c multidimensional-array

 int main(){
    int m1[3][3],m2[3][3],m3[3][3],m4[3][3],m5[3][3];
    create(m1);
    create(m2);
    matadd(m3,m1,m2);
    matmul(m4,m1,m2);
    transpose(m5,m4);
    getch();
    return 0;
  }

  void create(int a[3][3]){
    int i,k;
    for(i=0;i<3;i++){
        for(k=0;k<3;k++)
           scanf("%d",a[i][k]);
        }
    }
新编码,已经在2D矩阵上编写了一个简单的程序,编译成功,但每次运行它崩溃后我输入第一个2整数调用1st create()。

2 个答案:

答案 0 :(得分:3)

scanf("%d",a[i][k]);

d转化说明符需要指向int的指针,但您传递的是int

要传递指向对象的指针,请使用&运算符:

scanf("%d", &a[i][k]);

答案 1 :(得分:2)

使用这种方式

scanf("%d", &a[i][k]);

每次输入/ scanf时,都需要输入&。这是C的基本内容,你怎么能错过这个?