CXX.CWARN.ITER.EXTERN

外部で宣言されたループ反復子変数は禁止されています。

外部で作成されたループ境界変数を避けます。

脆弱性とリスク

ループインデックス変数が他のループにも使用され、それにより他の場所で変更されるか、期待どおりに初期化されない場合は、混乱を引き起こす可能性があります。

軽減と防止

このループでの使用に特化した、別のインデックス変数を作成することを検討してください。

コピー
int iGlobalIdx;
for (iGlobalIdx = 0; iGlobalIdx < array1.GetSize(); iGlobalIdx++)
{
  for(iGlobalIdx = 0; iGlobalIdx < array2.GetSize(); iGlobalIdx++)
  {
    someNumber = array2.GetAt(iGlobalIdx);
    someNumber++;
  }
  .
  .
  .
  if(array1.GetAt(iGlobalIdx) == 5)
  {
    ...
  }
}

この例では、ネストされたループに iGlobalIdx を使用すると、外側のループで保護されているにもかかわらず、array1 で使用すると、その値は範囲外になる可能性があります。