コンパイラエラー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