Skip to main content

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:

  • sa_icon_message.png SA0039 : Déférence possible du pointeur nul 'ptiVar2^'

  • sa_icon_message.png SA0039 : Déférence possible du pointeur nul 'ptiVar3^'