Skip to main content

SA0064 : Ajout de pointeur

Détecte l'ajout de pointeurs

Justification : Dans CODESYS, l'arithmétique des pointeurs est généralement autorisée et peut également être utilisée de manière appropriée. Mais cela représente aussi une source d’erreur. Par conséquent, il existe des règles de programmation qui interdisent généralement l’arithmétique des pointeurs. Ce test permet de vérifier une telle exigence.

Importance : Moyenne

Exemple 75. Exemple
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

Sortie dans le messages voir:

  • sa_icon_message.png SA0064 : Ajout de pointeur