プログラムの一部として、次のコードを使用しました。
///////////////
98:::printf("%d",abc->stv)
//////////////
100::if(abc)
//////////////
(以下のエラーが発生しました)
Possible null pointer dereference: abc - otherwise it is redundant to check if abc is null at line 100
if (abc)abcが null ポインター かどうかをテストします。
abcコンパイラは、(98 行目で逆参照することにより) がヌル ポインターではないと既に想定していることを警告しています。つまり、次のいずれかです。
if (abc)(真にならないため) またはabcあるため、正しくない可能性があります。abcテストabcすると、コンパイラにとってはnullになる可能性があります。したがって、のようにポインターを逆参照するabc->stvと、エラーが発生する可能性があります。printf解決策は、コードをifブロック内に囲むことです。
if(abc)
{
printf("%d",abc->stv)
...
}