当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust pointer.set_ptr_value用法及代码示例


本文简要介绍rust语言中 pointer.set_ptr_value 的用法。

用法

pub fn set_ptr_value(self, val: *const u8) -> *const T

将指针值设置为 ptr

如果 self 是指向未调整大小类型的(胖)指针,则此操作只会影响指针部分,而对于指向已调整类型的(瘦)指针,这与简单赋值具有相同的效果。

生成的指针将具有 val 的出处,即对于胖指针,此操作在语义上与使用数据指针值为 val 但元数据为 self 的新胖指针相同。

例子

此函数主要用于允许对潜在的胖指针进行 byte-wise 指针运算:

#![feature(set_ptr_value)]
let arr: [i32; 3] = [1, 2, 3];
let mut ptr = arr.as_ptr() as *const dyn Debug;
let thin = ptr as *const u8;
unsafe {
    ptr = ptr.set_ptr_value(thin.add(8));
    println!("{:?}", &*ptr); // will print "3"
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 pointer.set_ptr_value。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。