【问题标题】:How do I add offsets to addresses stored in a raw pointer?如何向存储在原始指针中的地址添加偏移量?
【发布时间】:2022-11-22 04:07:24
【问题描述】:

您好,这可能是一个愚蠢的问题。我的目标是存储地址并添加偏移量。 例如我有这样的东西:

let base_addr = 0x0112A160 as *mut u32;

现在我想存储第二个地址,它是 base_addr + offset

我已经尝试了一些事情,但我尝试过的所有事情都会导致程序崩溃(退出代码:0xc0000005,STATUS_ACCESS_VIOLATION)或其他一些问题

例如我尝试过的:

let new_address:u32 = *base_addr + 0xF8;
let new_address = base_addr + 0xF8 as *mut 32; 

谁能向我解释这样的事情是如何正确完成的?

【问题讨论】:

    标签: rust raw-pointer


    【解决方案1】:

    使用方法:

    let base_addr = 0x0112A160 as *mut u32;
    let new_address = unsafe { base_addr.offset(0xF8) };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2016-12-30
      • 2021-07-22
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多