中級 › 多次元配列で行と列の添字を取り違えて違う値を読む › パターン4
多次元配列で行と列の添字を取り違えて違う値を読む
arr[row][col]とarr[col][row]は多くの場合どちらもコンパイルは通り実行もできますが、正方でない配列では違う位置の値を読んでしまいます。
1 #include <stdio.h> 2 3 int main(void) { 4 int board[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 5 int row = 0, col = 1; 6 printf("%d\n", board[________]); ^ 7 return 0; 8 }
出力: 4期待: 2
空欄を埋めてコンパイル・実行を通す
添字の順序を配列の次元と揃えないと、意図しない位置の値を読んでしまいます。
次の問題