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