Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Fehler 3704 Datenrekursion

arno
2007-11-20
2007-11-21
  • arno - 2007-11-20

    ist es nicht moeglich, z.B. verkettete listen zu programmieren mit datenstrukturen der form

    struct elem {

    i : int ;

    n : pointer to elem ;

    p : pointer to elem ;

    }

    ich brauche eine zshaengende liste von objecten, aus welcher an beliebiger position eingefuegt und geloescht werden kann.

    vielen dank vorab

    arno

     
  • Anonymous - 2007-11-21

    Originally created by: Bernhard Werner

    Hallo arno,

    es ist in der Version 2.3 leider nicht möglich. Da Pointer aber prinzipiell zu allen Pointern und DWORD kompatibel sind, kann man verkettete Listen "hinschummeln":

    TYPE LinkList :
    STRUCT
       i : INT;
       pnext : DWORD;
       pprev: DWORD;
    END_STRUCT
    END_TYPE
    

    für Next und Prev dann am besten einfach Funktionen definieren der folgenden Art:

    FUNCTION NextElem : POINTER TO LinkList
    VAR_INPUT
       pelemIn : POINTER TO LinkList;
    END_VAR
    IF pelemIn = 0 THEN
       NextElem := 0;
    ELSE
       NextElem := pelemIn^.pNext;
    END_IF
    END_FUNCTION
    

    Bernhard Werner

     

Log in to post a comment.