當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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