Voglio racchiudere una funzione C che prende un char*
puntando a (il primo elemento di) un buffer non vuoto di byte. Sto cercando di avvolgerlo in una funzione Go utilizzando CGo in modo che possa passarlo a []byte
, ma non so come fare la conversione. Una versione semplificata della firma della funzione C èDa [] byte a char *
void foo(char const *buf, size_t n);
ho provato passando un puntatore al primo byte
nella fetta con
C.foo(&b[0], C.size_t(n))
Ciò non compilare, però:
cannot use &b[0] (type *byte) as type *_Ctype_char in function argument
Quindi qual è la procedura corretta qui? go-wiki descrive solo la situazione inversa.