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 で使用すると、その値は範囲外になる可能性があります。