用C构造自定义矩阵

时间:2017-01-25 00:18:58

标签: c matrix

我取得了一些进展。现在我遇到的问题是“警告:'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]);
     }
   }
 }

1 个答案:

答案 0 :(得分:0)

正如DYZ所说,我们不应该在没有初始化l和k的情况下给出语句int [k] [l]。默认情况下,l和k有一些垃圾值可能会产生问题

此外你应该有一个如下所示的原型,其中k代表行,l代表列 int prmat(int ** mat,int k,int l)