我有一个C函数(简化版)如下:
static char buffer[13];
void get_string(const char **s) {
sprintf(buffer, "Hello World!");
*s = buffer;
}
我已经在Rust中声明了它:
extern pub fn get_string(s: *mut *const c_char);
但我无法弄清楚调用它所需的咒语,并将结果转换为Rust字符串。我尝试的所有方法都无法编译,或者导致SEGV。
有什么指针吗?
char **
参数和char *
返回值之间有区别,int *
参数和char **
参数之间也有区别。我对Rust很陌生,不知道如何将它们结合起来。 - Roger Lipscombe