SA0039: Posibles deferencias de puntero nulo
Detecta ubicaciones de código donde posiblemente se desreferencia un puntero nulo
Justificación: Se debe comprobar un puntero antes de cada desreferenciación para asegurarse de que no sea igual a cero. De lo contrario, puede producirse una infracción de acceso en tiempo de ejecución.
Importancia: Alta
ejemplo 114. Ejemplo
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
Salida en el Mensajes vista:
SA0039: Posible deferencia de puntero nulo 'ptiVar2^'
SA0039: Posible deferencia de puntero nulo 'ptiVar3^'