Pointer auswerten

Beckx-net
2009-09-30
2009-10-01
  • Beckx-net - 2009-09-30

    Hallo,

    ich bin CoDeSys Anfänger und habe eine Frage zu den Pointern.

    Ich möchte einen Array Speicherbereich mittels Pointer an einen Funktionsblock übergeben. In dem Funktionsblock möchte ich nun anhand des Pointers wissen, wie groß mein Speicherbereich ist (Länge des Arrays).

    Ich habe es folgendermaßen gemacht

    Programmbaustein
    VAR 
    Record: Array [0..20] of Byte;
    END_VAR
    Aufruf FB
    InstanzFB(....
    PointerToData:= ADR(Record)
    .....);
    ;-------------------------------------
    Funktionsbaustein
    VAR_IN
    RecordFB: Pointer to Array [0..20] of Byte;
    END_VAR
    (*Zugriff auf Arraydaten*)
    RecordFB^[0]:= 5;
    TempXY:=Record^[1];
    

    Nun suche ich nach einer Möglichkeit, anhand des übergebenen Pointers festzustellen, wie groß mein Array (Record) ist! Kann mir da einer weitehelfen?

    Gibt es vielleicht auch eine Mögichkeit weitere Daten aus dem Pointer zu bekommen, z.B. Ob das Array of BOOL oder OF BYTE ist? (Ähnlich wie ein ANY-Pointer in Step7)

    Gruß Beckx-net

     

    Related

    Talk.ru: 1

  • Erik Böhm - 2009-10-01

    Moin

    Ein Pointer ist lediglich ein Zeiger auf eine Speicheradresse.

    Da gibts keine weiteren Informationen.

    Weder über die Länge noch den Typ.

    Das musst du schon selbst wissen, und der Funktion eben mit übergeben.

    Gruss

    Erik

     

Log in to post a comment.