【发布时间】:2020-05-05 03:32:15
【问题描述】:
我想将*mut 指针转换为&mut 引用。
// Both setting a value to ptr and getting a value from ptr succeeds.
let ptr: &mut usize = unsafe { &mut *(VIRTUAL_ADDRESS_TO_ACCESS_FREE_PAGE as *mut usize) };
这行得通。但是,如果 &mut 在 unsafe 块之外,则代码将无法部分工作。 *ptr = foo 不会将foo 存储到内存ptr 点,但let foo = *ptr 会将*ptr 的值分配给foo。
// Setting a value to ptr fails, but getting a value from ptr succeeds.
let ptr: &mut usize = &mut unsafe { *(VIRTUAL_ADDRESS_TO_ACCESS_FREE_PAGE as *mut usize) };
unsafe { &mut } 和 &mut unsafe{ } 有什么区别?
【问题讨论】:
标签: rust