我想包装一个 C 函数,它接受一个指向非空字节缓冲区(的第一个元素)的 char*
。我正在尝试使用 CGo 将其包装在 Go 函数中,以便可以将其传递给 []byte
,但我不知道如何进行转换。 C 函数签名的简化版本是
void foo(char const *buf, size_t n);
我尝试将指针传递给 slice 中的第一个 byte
C.foo(&b[0], C.size_t(n))
不过,这并不能编译:
cannot use &b[0] (type *byte) as type *_Ctype_char in function argument
那么这里的正确程序是什么? go-wiki只描述了相反的情况。
最佳答案
关于c - 从 []byte 到 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375997/