为了能够使用 C 库,我需要*mut c_char为函数提供一个参数。但我找不到从str.
我将 str 转换为CString,没关系,但是没有更多方法可以从 CString 获取*mut c_char夜间构建中的 a 。我发现在0.12.0中有一个方法,但是现在,得到这个方法的过程是什么*mut c_char?
let bytes = String::from_str("Test").into_bytes() + b"\0";
let cchars = bytes.map_in_place(|b| b as c_char);
let name: *mut c_char = cchars.as_mut_ptr();
Run Code Online (Sandbox Code Playgroud)
基本思想与你的相同,但不需要Vec明确地进行切片;还将一个零字节附加到缓冲区。另请参阅我对该问题的评论。