我正在尝试输入一个矩阵,然后使用函数进行打印。 进入read_mat函数时,程序崩溃。我怎么了?
#include <stdio.h>
#include <stdlib.h>
int** insert_mat(int **mat, int r, int c);
int** read_mat(int** mat, int r, int c)
{
mat = (int**)calloc(r,sizeof(int*));
for (int i=0; i<r; i++)
{
mat[i]=(int*)calloc(c,sizeof(int));
}
insert_mat(mat, r, c);
return mat;
}
int** insert_mat(int **mat, int r, int c)
{
for (int i=0; i<r; i++)
{
for(int j=0; j<c; j++)
{
printf("\nmat[%d][%d] = ",i , j);
scanf("%d", &mat[i][j]);
}
}
return mat;
}
void print_mat(int **mat, int r, int c)
{
printf("\n");
for (int i=0; i<r; i++)
{
for(int j=0; j<c; j++)
{
printf("%d ",mat[i][j]);
}
printf("\n");
}
}
int main()
{
int **mat;
int r1 =2;
int c1 = 2;
read_mat(mat, r1, c1);
print_mat(mat, r1, c1);
return 0;
}
我也尝试在main中打印mat的元素(例如:printf(“%d”,mat [0] [0]);),它也无法正常工作。所以也许错误是当我插入元素时?但是我不确定我做错了什么。