我有一个C函数,它使用char数组参数调用go-Function。go-Function 必须修改参数的内容。如何做到这一点?
void cFunction() {
char buffer[9] = "aaabbbccc"; // 9 is in this case correct, it is not a null-terminated-string
goFunction(buffer);
// buffer shall be modified
}
func goFunction(cBuffer *C.char) {
// how to modify 3-5?
//strncpy(cBuffer+3, "XXX")
}
编辑:更确切地说。我必须实现一个回调函数,它接受一个外参数,我必须操纵它。
void callback(char outbuffer[9]) {
goFunction(outbuffer);
}
正如我理解弗兰克斯的答案,我应该做这样的事情
allocate new go buffer
convert C buffer to go buffer
manipulate go buffer
allocate new C buffer
convert go buffer to C buffer
memcpy C buffer into outbuffer
对于我的口味来说,这是太多的分配和转换。
qq_花开花谢_0
慕雪6442864
相关分类