如何获取切片的地址?

科斯

如何将 slice 转换为*const ()or usize

&[ T ] -> *const ()

当然,我知道它会将胖指针降级为纤细的下降长度。我的用例是比较两个切片的地址。

查伊姆弗里德曼

最好的方法是调用<[T]>::as_ptr()<[T]>::as_mut_ptr()

您也可以按照这些函数的实现方式来执行此操作,首先将切片转换为指向切片的指针,然后将生成的指针转换为指向元素类型的细指针:

let slice: &[T];
slice as *const [T] as *const T;

但是,这些功能是在 std 中提供的,完全是为了让您不要这样做。

如果您只想比较地址,则可以std::ptr::eq()直接使用切片调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章