某些C接口返回指向缓冲区末尾的指针.那么我需要将范围转换为切片.但切片只能从指针和计数中创建.那我怎么得到数.
写end - start简单地给了我,error: binary operation `-` cannot be applied to type `*mut i8`并且std::ptr::PtrExt只有offset从偏移计算结束的方法,而不是反向操作.
可以将原始指针强制转换为usize; 然后你可以对那些进行减法.
end as usize - start as usize
从 1.47.0(2020 年 10 月)开始,Rust 有了offset_from指针类型的方法,允许你写:
let offset: isize = end.offset_from(start);
获取从startto的偏移量end。
| 归档时间: | 
 | 
| 查看次数: | 751 次 | 
| 最近记录: |