Ich möchte eine C-Funktion umbrechen, die eine char*
verweist auf (das erste Element von) einen nicht leeren Puffer von Bytes. Ich versuche, das in eine Go-Funktion mit CGo zu wickeln, so dass ich es []byte
übergeben kann, aber ich weiß nicht, wie man die Umwandlung durchführt. Eine vereinfachte Version der Unterschrift des C-Funktion istVon [] Byte zu char *
void foo(char const *buf, size_t n);
Ich habe versucht, mit
einen Zeiger auf das erstebyte
in der Scheibe vorbei
C.foo(&b[0], C.size_t(n))
Das ist nicht, obwohl nicht kompiliert:
cannot use &b[0] (type *byte) as type *_Ctype_char in function argument
Also, was ist das korrekte Verfahren hier? Die go-wiki beschreibt nur die umgekehrte Situation.