使用malloc不允许完全输入的c中的矩阵添加

时间:2017-11-13 21:38:54

标签: c matrix malloc

所以我的任务是通过为2-D数组动态分配空间来添加矩阵(它们不必是正方形但两个矩阵总是相同的大小),并且我使用了双指针。我获取用户输入矩阵的功能如下:

void matrixEntry(const int rowNum, const int colNum, const char 
matrixNum, int** matrix) {
  int i, j, k;

  matrix = (int**) malloc(rowNum * sizeof(int*));

  for (k = 0; k < rowNum; ++k) {
    matrix[i] = (int*)malloc(colNum * sizeof(int));
  }

  printf("Enter Matrix %c\n", matrixNum);

  for (i = 0; i < rowNum; ++i) {
    for (j = 0; j < colNum; ++j) {
      scanf("%d", &matrix[i][j]);
    }
  }
}

我把它称为主要的两次:

  matrixEntry(rowNum, colNum, matA, matrixOne);
  matrixEntry(rowNum, colNum, matB, matrixTwo);

但是,当我运行程序时,我只允许在程序停止运行之前进入Matrix A的第一行。我想这是因为我没有为第二排分配足够的空间,但我不确定我的错误在哪里。分配空间时我的思考过程是

matrix = (int**) malloc(rowNum * sizeof(int*));

为rowNum行分配空间,然后for循环为列数分配空间。这是对的吗?

0 个答案:

没有答案