2013-11-26 79 views
0

我想讀取一個矩陣文件,其中前兩行顯示行數,然後顯示數組中的列。在此之後,每行包含1個雙精度數據作爲該矩陣的條目(以行遍歷格式)。我可以在大多數的數據精細讀,但我得到一個總線錯誤時,我嘗試獲得第二到最後一行(8日在一個5×3 10×10或第三等)二維數組中的總線錯誤

double input[row1-1][col1-1]; 
    char buffer[50]; 
    int i, j; 
    for(i = 0; i < row1; i++) 
    { 
    for(j = 0; j < col1; j++) 
    { 
    if(fgets(buffer, 50, f1) == NULL) 
     printf("error \n"); 
    else 
    { 
     input[i][j] = atof(buffer); 
     printf("%f ", input[i][j]); 
    } 
    buffer[0] = '\0'; 
    } 
printf("\n"); 
} 
+2

雙輸入[row1-1] [col1-1]; 應該是雙輸入[row1] [col1]; –

回答

2

雖然你的陣列索引將只能走從0..row1-10..col1-1,陣列尺寸必須row1col1

double input[row1][col1]; 
1

輸入數組被聲明爲具有ROW1 - 1行。所以它們的編號從0到row1 - 2。你從0迭代到1 - 1。所以最後的訪問超出了界限。與列相同的問題。

我想你其實想要的第一行是input[row1][col1]