Skip to main content

Erreur du compilateur C0509

Message: Les affectations multiples pour l'opérateur '__New' ne sont pas autorisées

Cause possible de l'erreur: Dans une ligne de code, l'opérateur d'affectation ":=" est appelé un nombre multiple de fois avec le __New opérateur.

Correction des erreurs: Programmer l'allocation mémoire avec le __New opérateur dans une ligne de code distincte pour chaque pointeur qui pointe vers la mémoire allouée dynamiquement.

Exemple 479. Exemple d'erreur :
PROGRAM PLC_PRG
VAR
    pbAlpha : POINTER TO BYTE; // Typed pointer to Alpha
    pbBeta: POINTER TO BYTE;        // Typed pointer to Beta
    xInit : BOOL := TRUE;
    xDelete : BOOL;
END_VAR

IF (xInit) THEN
    pbBeta := pbAlpha := __NEW(BYTE); // Incorrect code for memory allocation
END_IF

pbBeta := pbAlpha := 16#01;

IF (xDelete) THEN
    __DELETE(pbAlpha); // Frees memory of pointer
END_IF

Message:

C0509 : affectations multiples pour l'opérateur '__NEW' non autorisées

Correction des erreurs:

PROGRAM PLC_PRG
VAR
    pbAlpha : POINTER TO BYTE; // Pointer to Alpha
    pbBeta: POINTER TO BYTE;        // Pointer to Beta
    xInit : BOOL := TRUE;
    xDelete : BOOL;
END_VAR

IF (xInit) THEN
    pbAlpha := __NEW(BYTE); // Allocates memory for Alpha
    pbBeta :=  __NEW(BYTE); // Allocates memory for Beta
END_IF

pbBeta := pbAlpha := 16#01; // Multiple assignment

IF (xDelete) THEN
    __DELETE(pbAlpha); // Frees memory of pointer
END_IF


Pour plus d'informations, consultez : __NEW