SA0124: Pointer-Dereferenzierung im Deklarationsteil
Ermittelt Pointer-Dereferenzierungen, die zur Initialisierung im Deklarationsteil verwendet werden.
Begründung: Pointer und Referenzen sollten nicht für Initialisierungen verwendet werden, weil es dadurch zu Zugriffsverletzungen kommen kann, wenn der Pointer nicht initialisiert worden ist.
Wichtigkeit: Mittel
Beispiel 111. Beispiel
TYPE TESTSTRUCT :
STRUCT
xA : BOOL;
xB : BOOL;
END_STRUCT
END_TYPEFUNCTION_BLOCK FB_Test
VAR_INPUT
pTeststruct : POINTER TO TESTSTRUCT;
END_VAR
VAR
xA : BOOL := pTeststruct^.xA; //SA0124
END_VAR
xA := TRUE;
PROGRAM PLC_PRG
VAR
fbTest : FB_Test;
END_VAR
fbTest();
Ausgabe unter Ansicht Meldungen:
SA0124: Pointer-Deferenzierungen im Deklarationsteil