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

Funktion - Pointer auf variables Array

Weissnix
2017-04-04
2017-09-26
  • Weissnix - 2017-04-04

    Hallo,

    und zwar möchte ich eine Funktion implementieren, welche einen Pointer auf ein Array übergeben bekommt und mit diesem gewisse Operationen durchführt.
    Das Problem ist, dass dieses Array nicht immer gleich groß ist. Deshalb meine Frage ob das mit einem dynamischem Array realisierbar wäre.
    Hier ein kleines Code-Beispiel wie ich mir das vorgestellt hätte:

    FUNCTION ARR_Test: BOOL
    VAR_INPUT
    END_VAR
    VAR_IN_OUT
       test_array : POINTER TO ARRAY[*,*] OF INT;
    END_VAR
    VAR
       arr_max_1 : DINT;
       arr_max_2 : DINT;
       arr_min_1 : DINT;
       arr_min_2 : DINT;
    END_VAR
    
    arr_max_1 := UPPER_BOUND(test_array,1);
    arr_max_2 := UPPER_BOUND(test_array,2);
    arr_min_1 := LOWER_BOUND(test_array,1);
    arr_min_2 := LOWER_BOUND(test_array,2);
    

    Hier bekomme ich nur folgende Fehlermeldung, womit ich leider nichts anfangen kann:
    C0386: Ein Typ eines Arrays von variabler Länge muss an der obersten Position einer Typdeklaration stehen

    Wäre super wenn mir jemand weiterhelfen könnte.
    Vielen Dank!

     
  • Thomas - 2017-09-26

    Moin,
    das Array in deiner Funktion ist falsch deklariert.

    So funktioniert es:

    test_array : ARRAY[,] OF INT;

    ThK

     

Log in to post a comment.