0
我試圖將值掃描到一個矩陣中,該矩陣通過引用傳遞給一個函數,但未編譯。 有什麼問題? 我認爲問題是在scanf
行,但我不知道如何解決它。通過參考傳遞矩陣和掃描值
#include <stdio.h>
#include <stdlib.h>
int** initMatrix(int lines, int columns) {
int i;
int** matrix;
matrix = (int**) calloc(lines, sizeof(int*));
for (i = 0; i < lines; i++) {
matrix[i] = (int*) calloc(columns, sizeof(int));
}
return matrix;
}
void fillMatrixValues(int*** matrixA, int lines, int columns) {
int i, j;
for (i = 0; i < lines; i++) {
for (j = 0; j < columns; j++) {
scanf("%d", matrixA[i][j]);
}
}
}
void printMatrix(int** matrix, int lines, int columns) {
int i, j;
for (i = 0; i < lines; i++) {
for (j = 0; j < columns; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
void main() {
int** matrixA;
int lines = 2, columns = 2;
matrixA = initMatrix(lines, columns);
fillMatrixValues(&matrixA, lines, columns);
printMatrix(matrixA, lines, columns);
}
至少一個問題是在這裏'空隙fillMatrixValues(INT ***矩陣matrixA,INT線,整數列)'。矩陣A應該是'int **'而不是'int ***'。 –
一般檢查scanf的返回值以防止誤解。在調試實驗中,您在掃描完所有內容後立即進行打印。使用scanf可能會犯很多錯誤。簡而言之,在嘗試對結果做任何事情之前先讓您的scanf進行測試並運行。 – Yunnosch