消息:不允许为运算符‘__New’进行多次分配
可能的错误原因:在一行代码中,使用__New运算符多次调用赋值运算符“:=”。
错误更正:使用__New运算符在指向单独动态代码的每个指针的单独一行代码中对内存分配进行编程。
.错误范例:
PROGRAM PLC_PRG
VAR
pbAlpha : POINTER TO BYTE; // 键入指向Alpha的指针
pbBeta: POINTER TO BYTE; // 键入指向Beta的指针
xInit : BOOL := TRUE;
xDelete : BOOL;
END_VAR
IF (xInit) THEN
pbBeta := pbAlpha := __NEW(BYTE); // 错误的内存分配代码
END_IF
pbBeta := pbAlpha := 16#01;
IF (xDelete) THEN
__DELETE(pbAlpha); // 释放指针的内存
END_IF
--> C0509: 不允许为运算符‘__New’进行多次分配
.错误更正:
PROGRAM PLC_PRG
VAR
pbAlpha : POINTER TO BYTE; // 指向Alpha的指针
pbBeta: POINTER TO BYTE; //指向Beta的指针
xInit : BOOL := TRUE;
xDelete : BOOL;
END_VAR
IF (xInit) THEN
pbAlpha := __NEW(BYTE); // 为Alpha分配内存
pbBeta := __NEW(BYTE); // 为Beta分配内存
END_IF
pbBeta := pbAlpha := 16#01; // 多重分配
IF (xDelete) THEN
__DELETE(pbAlpha); // 释放指针的内存
END_IF