我取得了一些进展。现在我遇到的问题是“警告:'mat'可以在此函数中使用未初始化[-Wyybe-uninitialized] scanf(”%d“,& mat [i] [j ]);”并且在运行时获得“分段故障(核心转储)”。
到目前为止,这是代码:
#include<stdlib.h>
#include<stdio.h>
int main(){
int **mat;
int l, k, i, j;
printf("rows?");
scanf("%d", &k);
printf("columns?");
scanf("%d", &l);
for(i = 0; i < k; i++){
for(j = 0; j < l; j++){
printf("mat[%d][%d]: ", i, j);
scanf("%d", &mat[i][j]);
}
}
}
void prmat(int k, int l, int **mat){
int i, j;
printf("\n\n");
for(i = 0; i < k; i++){
for(j = 0; j < l; j++){
printf("%d", mat[i][j]);
}
}
}
答案 0 :(得分:0)
正如DYZ所说,我们不应该在没有初始化l和k的情况下给出语句int [k] [l]。默认情况下,l和k有一些垃圾值可能会产生问题
此外你应该有一个如下所示的原型,其中k代表行,l代表列 int prmat(int ** mat,int k,int l)