SA0039 : Déférences possibles avec un pointeur nul
Détermine les codes où un pointeur nul peut être déréférencé.
Justification : Un pointeur doit être vérifié avant chaque déréférencement pour s'assurer qu'il n'est pas égal à zéro. Sinon, une violation d'accès peut se produire au moment de l'exécution.
Importance : Élevée
Exemple 114. Exemple
PROGRAM PLC_PRG VAR ptiVar1:POINTER TO INT; ptiVar2:POINTER TO INT; ptiVar3:POINTER TO INT; iVar:INT; iCount :INT; iCondition: INT; END_VAR
iCount := iCount + INT#1; ptiVar1 := ADR(iVar); ptiVar1^ := iCondition; // OK - valid reference ptiVar2^ := iCondition; // SA0039 - null pointer dereferenciation iVar := ptiVar3^; // SA0039 - null pointer dereferenciation
Sortie dans le messages voir:
SA0039 : Déférence possible du pointeur nul 'ptiVar2^'
SA0039 : Déférence possible du pointeur nul 'ptiVar3^'