実行時エラーの可能性を探すために、いくつかのコードに対して cppcheck を実行しました。また、次の状況で null ポインター逆参照の可能性が報告されています。
Foo* x = ... //defined somewhere
...
Foo* y(x); //possible null pointer dereference.
編集:より良い例
for( int i = 0; i < N; i++ )
{
Foo* x( ArrayOfObjsContainingFooPtr[i].FooPtr ); // line 3
if( !x ) // line 4
continue;
}
cppcheck からのエラー メッセージ:
[C:\file.cpp:3]: (エラー) null ポインター逆参照の可能性: x - そうでない場合、4 行目で x が null かどうかを確認するのは冗長です
しかし、これがどのように可能かわかりません。