初級 › 配列の添字を1つずらしてしまうoff-by-oneバグ › パターン4
配列の添字を1つずらしてしまうoff-by-oneバグ
配列の要素数と添字の範囲を混同し、ループの開始や終了条件を1つずらしてしまうバグです。
1 #include <iostream> 2 int main() { 3 int nums[4] = {5, 10, 15, 20}; 4 int sum = 0; 5 for (int i = _; i < 4; i++) { ^ 6 sum += nums[i]; 7 } 8 std::cout << sum << std::endl; 9 return 0; 10 }
出力: 45期待: 50
空欄を埋めてコンパイル・実行を通す
i=1から始めると添字0の要素(5)が合計から漏れます。
次の問題