Skip to main content

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:

  • sa_icon_message.png SA0039: Possibile deferenza del puntatore nullo 'ptiVar2^'

  • sa_icon_message.png SA0039: Possibile deferenza del puntatore nullo 'ptiVar3^'