本文简要介绍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 pointer.sub用法及代码示例
- Rust pointer.offset_from用法及代码示例
- Rust pointer.is_null用法及代码示例
- Rust pointer.add用法及代码示例
- Rust pointer.get_unchecked用法及代码示例
- Rust pointer.align_offset用法及代码示例
- Rust pointer.wrapping_add用法及代码示例
- Rust pointer.wrapping_offset用法及代码示例
- Rust pointer.wrapping_sub用法及代码示例
- Rust pointer.as_uninit_ref用法及代码示例
- Rust pointer.len用法及代码示例
- Rust pointer.get_unchecked_mut用法及代码示例
- Rust pointer.as_ptr用法及代码示例
- Rust pointer.as_mut_ptr用法及代码示例
- Rust pointer.offset用法及代码示例
- Rust pointer.as_mut用法及代码示例
- Rust pointer.as_ref用法及代码示例
- Rust pointer用法及代码示例
- Rust poll_fn用法及代码示例
- Rust park用法及代码示例
- Rust panicking用法及代码示例
- Rust panic用法及代码示例
- Rust println用法及代码示例
- Rust pending用法及代码示例
- Rust print用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 pointer.set_ptr_value。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。