プログラムの一部として、次のコードを使用しました。
///////////////
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)
...
}