本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。