Skip to main content

SA0064: Aggiunta di un puntatore

Determina le addizioni di puntatori.

Motivazione: In CODESYS, l'aritmetica dei puntatori è generalmente consentita e può anche essere utilizzata in modo appropriato. Rappresenta però anche una fonte di errore. Pertanto, esistono regole di programmazione che generalmente vietano l'aritmetica dei puntatori. Questo test può verificare tale requisito.

Importanza: Media

Esempio 75. Esempio
PROGRAM PLC_PRG
VAR
    iTest : INT;
    ariTest : ARRAY[0..10] OF INT;
    {attribute 'analysis':='-111'}
    piTest : POINTER TO INT;
    i : INT;
END_VAR
piTest := ADR(ariTest[0]);    // OK
piTest^ := 0;
piTest := ADR(ariTest) + SIZEOF(INT);    // SA0064
piTest^ := 1;
piTest := ADR(ariTest) + 6;    // SA0064
piTest^ := 3;
piTest := ADR(ariTest[10]);
FOR i:=0 TO 10 DO
    piTest^ := i;
    piTest := piTest + 2;    // SA0064
END_FOR

Uscita in Messaggi vista:

  • sa_icon_message.png SA0064: Aggiunta del puntatore