Tôi muốn bọc hàm C mất char*
trỏ tới (phần tử đầu tiên) một bộ đệm không trống rỗng của byte. Tôi đang cố gắng để bọc trong một chức năng Go bằng cách sử dụng CGo để tôi có thể vượt qua nó một []byte
, nhưng tôi không biết làm thế nào để làm việc chuyển đổi. Một phiên bản đơn giản của chữ ký C chức năng làTừ [] byte sang char *
void foo(char const *buf, size_t n);
tôi đã cố gắng đi qua một con trỏ đến các byte
đầu tiên trong lát với
C.foo(&b[0], C.size_t(n))
Điều đó không có biên dịch, mặc dù:
cannot use &b[0] (type *byte) as type *_Ctype_char in function argument
Vậy thủ tục chính xác ở đây là gì? go-wiki chỉ mô tả tình huống ngược lại.