Skip to main content

コンパイラエラーC0509

メッセージ:演算子 '__New'の複数の割り当ては許可されていません

考えられるエラーの原因:1行のコードで、代入演算子 ":="は複数回呼び出されます __New オペレーター。

エラー訂正:メモリ割り当てをプログラムする __New 動的に割り当てられたメモリを指す各ポインタの個別のコード行の演算子。

479. エラーの例:
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

メッセージ:

C0509:演算子 '__NEW'への複数の割り当ては許可されていません

エラー訂正:

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


詳細については、以下を参照してください。 __NEW