您好,我創建了一個隨機 6x6 矩陣int S[6][6],問題是當我嘗試訪問像S[6][-1]square 這樣不存在的正方形的值時,它應該回傳 0,但它回傳的是S[5][5]正方形。如果我嘗試動態分配,我得到 0x0005 段錯誤。
2 1 2 1 2 1
2 1 1 2 1 1
2 2 1 1 2 1
1 2 1 1 1 2
1 2 2 2 1 1
1 1 1 2 2 2 //S[0][6] = S[1][0]
有沒有辦法解決這個問題?
uj5u.com熱心網友回復:
您可能應該為此實作一個功能。它可能看起來像這樣:
int matrix_get_value(int row, int column) {
if(row < 0 || row >= 6 || column < 0 || column >= 6)
return 0;
return matrix[row][column];
}
也可以通過將矩陣作為函式引數傳遞來以更動態的方式完成
int matrix_get_value(int **matrix, int size_rows, int size_columns, int row, int column) {
if(row < 0 || row >= size_rows || column < 0 || column >= size_columns)
return 0;
return matrix[row][column];
}
在這個解決方案中,矩陣作為雙指標(指向指標的指標)傳遞給函式,但這也可以通過其他方式完成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407559.html
標籤:
上一篇:動態分配二維陣列的最佳使用
下一篇:將無符號整數與負文字進行比較
