私はこのサイトの初心者です。質問がある場合は、あらかじめお詫び申し上げます。ありがとうございます!GimpelさんのPCリントバリュートラッキング
これは非常に単純化されたコード例ですが、私はそれは私が話しているかを示して思う:私は、値をテストするための別の方法に呼び出しを行うC++メソッドを持っている...
char m_array[MAX]; // class member, MAX is a #define
validNumber()
呼び出しを無視しているようだということで、アウトオブの
警告661の可能なアクセスを提供しますvalidNumber(unsigned int val) { return ((val > 0) && (val <= MAX)); }
:
foo(unsigned int n)
{
if (validNumber(n)) //test n
{
// do stuff
m_array[n-1] = 0;
}
}
オペレータによる境界ポインタ(データの末尾を超え1)「[」私はこのようにそれを行う場合
はしかし、リントは幸せです:
のでif ((n > 0) && (n <= MAX)) //test n
...
テスト場合は、リントの値の追跡だけでは動作しません。メソッド呼び出しですか?再び
おかげで、
HF
ありがとうございました!私たちがこの問題を再訪することになった場合、私はthe -passesのトリックを試してみるでしょう。今のところ私たちは#有効なチェックを定義してしまいましたが、もちろんそれはすべてをラインに入れており、Lintはそれを好きです –