Error del compilador C0509
Mensaje: Asignaciones múltiples para el operador '__Nuevo' no permitidas
Posible causa de error: En una línea de código, el operador de asignación ":=
" se llama un número múltiplo de veces con el __New
operador.
Error de corrección: Programe la asignación de memoria con el __New
operador en una línea de código separada para cada puntero que apunta a la memoria asignada dinámicamente.
ejemplo 479. Ejemplo del error:
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
Mensaje:
C0509: No se permiten asignaciones múltiples para el operador '__NUEVO'
Error de corrección:
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
Para más información, ver: __NEW