我编写了一个测试程序,以检查是否可以在Rust上正确读取数据。
C ++代码:
std::vector<float> vec;
vec.push_back(10);
vec.push_back(20);
std::cout << "len is " << get_len(&vec);
Run Code Online (Sandbox Code Playgroud)
锈代码:
std::vector<float> vec;
vec.push_back(10);
vec.push_back(20);
std::cout << "len is " << get_len(&vec);
Run Code Online (Sandbox Code Playgroud)
我的输出看起来像这样,并且总是不同的:
#[no_mangle]
pub extern "C" fn get_len(vec: *const Vec<f32>) -> i32 {
let vec= unsafe { &*vec};
vec.len() as i32
}
Run Code Online (Sandbox Code Playgroud)