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

时间:2016-02-09 01:00:07

标签: rust

例如,我想说我想要访问0x0900中存储的任何值。我在Rust标准库中找到了函数std::ptr::read,但是文档对于如何使用它并不是很清楚,我不确定它是否正确。

这是我尝试过的:

use std::ptr;

fn main() {
    let n = ptr::read("0x0900");
    println!("{}", n);
}

但它给了我错误E0277

1 个答案:

答案 0 :(得分:5)

如果要从内存位置u32读取0x0900类型的值,可以按以下步骤操作:

use std::ptr;

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

    println!("{}", n);
}

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