小编max*_*xls的帖子

为什么不将 u8 指针转换为 [bool; 8] 指针逐位产生数字?

我正在 Rust 中尝试原始指针。我有以下代码:

fn main() {
    let mut t: u8 = 0;

    let addr = &mut t as *mut u8 as usize;

    let x = addr as *mut [bool; 8];

    let y = addr as *mut u8;
    unsafe {
        *y = 0b10101010;
        println!("{:?} {:b}", *x, *y);
    }
}
Run Code Online (Sandbox Code Playgroud)

它产生以下输出:[true, true, true, true, true, true, true, false] 10101010 虽然我希望它打印[true, false, true, false, true, false, true, false] 10101010. 到底是怎么回事?bool数组不是按位存储的吗?

unsafe rust

1
推荐指数
1
解决办法
909
查看次数

标签 统计

rust ×1

unsafe ×1