爲什麼下面的代碼給我一個分段錯誤?如何修改傳遞給函數的2d數組?
#define MAXROWS 10
#define MAXCOLS 10
void getInput (int *data[MAXROWS][MAXCOLS]) {
int rows, cols;
int curRow, curCol;
printf ("How many rows and cols?");
scanf ("%d %d", rows, cols);
for (curRow = 0; curRow < rows; curRow++) {
for (curCol = 0; curCol < cols; curCol++) {
scanf ("%d", data[curRow][curCol]);
printf ("%d\n", *data[curRow][curCol]);
}
}
}
void main() {
int data[MAXROWS][MAXCOLS];
getInput (data);
}
這似乎是在scanf
和printf
聲明都沒有得到傳遞正確的數據類型,但我不知道是什麼,他們應該是。
我該如何改變它才能正常工作?
您在什麼時候收到seg故障? – 2009-09-16 07:43:17
當它開始將值讀入* data * – 2009-09-16 07:48:40