Skip to main content

SA0064: Adición de puntero

Detecta la adición de punteros

Justificación: En CODESYS, la aritmética de punteros generalmente está permitida y también puede usarse apropiadamente. Sin embargo, también representa una fuente de error. Por lo tanto, existen reglas de programación que generalmente prohíben la aritmética de punteros. Esta prueba puede comprobar tal requisito.

Importancia: Media

ejemplo 75. Ejemplo
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

Salida en el Mensajes vista:

  • sa_icon_message.png SA0064: Adición de puntero