我想这样做
// I cannot alter this function
fn a_ffi_function(buffer: &[u8; 16]) {
unsafe {
}
}
fn main() {
let buffer = [0u8; 64];
for i in 0..4 {
a_ffi_function(&buffer[i*16..(i+1)*16]);
}
}
但编译器不允许我
error[E0308]: mismatched types
--> src/main.rs:10:24
|
10 | a_ffi_function(&buffer[i*16..(i+1)*16]);
| ^^^^^^^^^^^^^^^^^^^^^^^ expected array of 16 elements, found slice
|
= note: expected type `&[u8; 16]`
found type `&[u8]`
我无法找到从&[u8]
投射到&[u8; 16]
的方法。我该怎么办?
我不想复制内存。此应用程序是时间敏感的。
我每晚使用rustc 1.27.0(ad610bed8 2018-04-11)。