信息 :不允许对运算符"__新 "进行多重赋值
可能的错误原因 :在一行代码中,赋值运算符 ":=
" 与__New
运算符被多次调用。
纠错 :使用__New
操作符为指向动态分配内存的每个指针编写单独一行代码,进行内存分配。
错误示例
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: Multiple assignments for operator '__New' not allowed
纠错
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