所以我的任务是通过为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循环为列数分配空间。这是对的吗?