SA0039: Possibili deferenze del puntatore nullo
Rileva le posizioni del codice in cui รจ possibile che un puntatore null sia dereferenziato
Motivazione: Un puntatore dovrebbe essere controllato prima di ogni dereferenziazione per assicurarsi che non sia uguale a zero. In caso contrario potrebbe verificarsi una violazione di accesso in fase di esecuzione.
Importanza: Alta
Esempio 114. Esempio
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
Uscita in Messaggi vista:
SA0039: Possibile deferenza del puntatore nullo 'ptiVar2^'
SA0039: Possibile deferenza del puntatore nullo 'ptiVar3^'