SA0039:nullポインタの逆参照の可能性
nullポインタが逆参照される可能性のあるコードを決定します。
正当性: ポインターは、各逆参照の前にチェックして、ゼロに等しくないことを確認する必要があります。そうしないと、実行時にアクセス違反が発生する可能性があります。
重要性:高い
例 114. 例
PROGRAM PLC_PRG VAR ptiVar1:POINTER TO INT; ptiVar2:POINTER TO INT; ptiVar3:POINTER TO INT; iVar:INT; iCount :INT; iCondition: INT; END_VAR
iCount := iCount + INT#1; ptiVar1 := ADR(iVar); ptiVar1^ := iCondition; // OK - valid reference ptiVar2^ := iCondition; // SA0039 - null pointer dereferenciation iVar := ptiVar3^; // SA0039 - null pointer dereferenciation
での出力 メッセージ ビュー:
SA0039: NULL ポインターの参照 'ptiVar2^' の可能性があります
SA0039: NULL ポインターの参照 'ptiVar3^' の可能性があります