' schrieb:long KontrastC(long *Brows, long *Bcols, long *Lcols, long *Lrows, unsigned char **Bild, double **Kontrast,long *test)
Zitat:LabVIEW schlägt als Funktionsprototyp übrigens folgendes vor:
long KontrastC(long *Brows, long *Bcols, long *Lcols, long *Lrows, unsigned char *Bild, double *Kontrast,long *test)
Der Unterschied ist offensichtlich: "unsigned char *" ist was ganz was anderes als "unsigned char **".
Zitat:Das erscheint mir und dem Kompiler jedoch als sehr unsinnig da definitiv ein 2D Array eingestellt wurde.
** heißt nicht, dass es sich um eine 2D-Array handelt. ** ist ein Zeiger auf den Instanzzeiger des Arrays.
Zitat:Als Array Datentyp wurde übrigens "Array Datenzeiger" bei den beiden 2D Arrays Kontrast und Bild eingesetzt.
Bei "Array Datenzeiger" nur ein Stern. Bei zwei Sternen könntest du "Zeiger auf Array-Handle" probieren (da bin ich aber unsicher).
Zitat:Der C-Code lautet:
Kannst du den C-Code ändern? Mach aus ** * und pass den Code entsprechend an (z.B. (Selbst-Inkrementierende-) Pointern anstelle explizitem Array-Zugriff). Die Übergabe ist dann "Array Datenzeiger".