Skip to main content

SA0125: Referenzvariablen in Initialisierungen

Ermittelt Referenzvariablen, 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 112. Beispiel
TYPE TESTSTRUCT :
STRUCT
    xA : BOOL;
    xB : BOOL;
END_STRUCT
END_TYPE
FUNCTION_BLOCK FB_Test
VAR_INPUT
    refTeststruct: REFERENCE TO TESTSTRUCT;
END_VAR
VAR
    xA : BOOL := refTeststruct.xA; //SA0125
END_VAR
xA := TRUE;
PROGRAM PLC_PRG
VAR
    fbTest : FB_Test;
END_VAR
fbTest();

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0125: Referenzierung in Initialisierung