你将如何在Rust中创建指向特定内存地址的指针?

wat*_*zon 4 rust

例如,假设我想访问存储的任何值0x0900.我std::ptr::read在Rust标准库中找到了这个函数,但是关于如何使用它的文档并不是很清楚,我不确定它是否是正确的方法.

这就是我尝试过的:

use std::ptr;

fn main() {
    let n = ptr::read("0x0900");
    println!("{}", n);
}
Run Code Online (Sandbox Code Playgroud)

但它给了我错误 E0277

fjh*_*fjh 6

如果u32要从内存位置读取类型值0x0900,可以按如下方式执行:

use std::ptr;

fn main() {
    let p = 0x0900 as *const u32;
    let n = unsafe { ptr::read(p) };

    println!("{}", n);
}
Run Code Online (Sandbox Code Playgroud)

请注意,在将地址转换为指针时,需要确定所需的指针类型.

  • 如何在不在一行中声明“p”的情况下做到这一点? (2认同)