Errore del compilatore C0509
Messaggio: Non sono consentite assegnazioni multiple per l'operatore '__New'
Possibile causa dell'errore: In una riga di codice, l'operatore di assegnazione ":=" viene chiamato più volte con il __New operatore.
Correzione dell'errore: Programmare l'allocazione della memoria con il __New operatore in una riga di codice separata per ogni puntatore che punta alla memoria allocata dinamicamente.
Esempio 484. Esempio dell'errore:
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
Messaggio:
C0509: assegnazioni multiple per l'operatore '__NEW' non consentite
Correzione dell'errore:
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_IFPer ulteriori informazioni, vedere: __NEW