SA0017: Nicht-reguläre Zuweisungen auf Pointer-Variable

Funktion

Ermittelt Zuweisungen auf Pointer, die keine Adresse (ADR-Operator, Zeigervariablen) oder Konstante 0 sind.

Begründung

Wenn ein Pointer einen Wert zugewiesen bekommt, der keine gültige Adresse ist, dann führt die Dereferenzierung des Pointers zu einer „Access Violation Exception“ (Exception bei Zugriffsverletzung).

Wichtigkeit

Hoch

Beispiel:

PROGRAM MAIN 
VAR
    nVar      : INT;
    pInt      : POINTER TO INT;
    nAddress  : XWORD;
END_VAR
nAddress := nAddress + 1;
 
pInt     := ADR(nVar);           // no error
pInt     := 0;                   // no error
pInt     := nAddress;            // => SA0017