配列の範囲外を指す定数インデックス

配列の範囲外を指す定数インデックス

説明

固定長配列の範囲外を指す定数インデックスを使うと、隣接するメモリを読み書きする可能性があります。

想定される影響

  • メモリ破損、情報漏えい、クラッシュのおそれがあります。

対処方法

配列の範囲内のインデックスだけを使ってください。ループの条件や定数値を、配列の宣言と合わせて確認してください。

例

変更前

c
int values[4];
values[4] = 1;

変更後

c
int values[4];
values[3] = 1;

要素数が4の配列で有効なインデックスは0から3です。変更後は最後の有効な要素にアクセスします。

参考資料