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