【问题标题】:Rust: Convert a mutable u8 pointer to a mutable referenceRust:将可变 u8 指针转换为可变引用
【发布时间】:2022-11-29 20:50:53
【问题描述】:

如何将可变 u8 指针转换为另一种类型的可变引用?

let ptr: *mut u8;

let reference: &mut SomeType = ?; // What should i do here?

我找到了一种可行的解决方案,但我想知道是否有更好的方法:

let reference = unsafe { &mut *(ptr as *mut SomeType) };

【问题讨论】:

    标签: pointers rust types casting


    【解决方案1】:

    您可以改用 std::mem::transmute

    use std::mem::transmute;
    #[repr(transparent)]
    struct SomeStruct(u8);
    
    fn main() {
        let a = &mut 10u8;
        let ptr = a as *mut u8;
        let reference: &mut SomeStruct = unsafe { transmute(ptr) };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2021-08-19
      • 1970-01-01
      • 2014-07-22
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多