如何使用Rust获取指向切片中最后一个元素的指针?

时间:2017-10-11 13:57:19

标签: rust

我想在下面的示例中摆脱强制转换:

let s = &[1, 2, 3];
let mut i = s.as_ptr();
unsafe {
    let mut j = i.offset(s.len() as isize - 1);
    do pointer arithmetic on i and j...
}

有更好的方法吗?我一直在查看Rust参考文献中s.last_as_ptr()的内容,但还没有找到它。

编辑:我应该首先阅读指针基础知识https://doc.rust-lang.org/book/first-edition/raw-pointers.html

  

这绝对是你不需要安全的东西。如果您确实需要指针而不是引用,则可以将结果引用转换为指针。 - Shepmaster

@Shepmaster& @Josh Lee:我应该提供一个完整的例子,我需要在ij上做指针算术。我编辑了代码以反映这一点。 感谢指出.last(),这似乎是一个明显的选择,因为它返回一个引用。 发布此问题时我遗漏的信息是引用/借用可以转换为指针。

这似乎是我在寻找let mut j = s.last().unwrap() as *const _;

0 个答案:

没有答案