我老遇到代码没检验出有错但一运行就会说有个问题导致程序停止工作。
这是我写的矩阵乘法的带码:int juzhen(){
int **a=NULL;
printf("请输入第一个矩阵的行数和列数\n");
int n,m;
scanf("%d%d",&n,&m);
a=(int**)malloc(sizeof(int*)*n);
for(int i=0;i<n;i++)
a[i]=(int*)malloc(sizeof(int*)*m);
printf("请以行输入第一个矩阵的元素\n");
for(int i1=0;i1<n;i1++)
for(int j=0;j<m;j++)
scanf("%d",&a[i1][j]);
int **b=NULL;
int n1,m1;
printf("请输入第二个矩阵的行数和列数\n");
scanf("%d",&n1);
scanf("%d",&m1);
b=(int**)malloc(sizeof(int*)*n1);
for(int k=0;k<n1;k++)
b[k]=(int*)malloc(sizeof(int*)*m1);
printf("请以行输入第二个矩阵的元素\n");
for(int k1=0;k1<n1;k1++)
for(int j1=0;j1<m1;j1++)
scanf("%d",&b[k1][j1]);
int **c=NULL;
c=(int**)malloc(sizeof(int*)*n);
for(int i2=0;i2<n;i2++);
c[i2]=(int*)malloc(sizeof(int*)*m1);
for(int i3=0;i3<n;i3++){
for(int k2=0;k2<m1;k2++){
int sum=a[i3][0]*b[0][k2];
for(int j2=1;j2<n1;j2++)
sum +=a[i3][j2]*b[j2][k2];
c[i3][k2]=sum;//这行开始停止工作
}
}
for(int i4=0;i4<n;i4++){
printf("A");
for(int j4=0;j4<m1;j4++)
printf("%d",c[i4][j4]);
printf("\n");
}
for(i=0;i<n;i++)
free(a[i]);
free(a);
for(k=0;k<n1;k++)
free(b[k]);
free(b);
for(i2=0;i2<n;i2++)
free(c[i2]);
free(c);
return 1;
}