gpt4 book ai didi

rust - 如何将大于u8的数字写到指针?

转载 作者:行者123 更新时间:2023-12-03 11:42:27 26 4
gpt4 key购买 nike

alloc crate 做一些分配,我偶然发现了一个问题。当alloc返回u8指针时,我无法向该地址写入大于255的整数。我该如何解决?

let ps = alloc(Layout::from_size_align(4096, 8).unwrap());
ps.write(399); // this line gives out of range error

最佳答案

您需要将指针强制转换为所需的类型。 Alloc是低级别的,它仅适用于“内存”,因此使用u8是因为它最接近“原始字节”的含义。

let ps = alloc(Layout::from_size_align(4096, 8).unwrap());
let ps = ps as *mut MyTargetType;

// Use ps here
// ....

let ps = ps as *mut u8;
dealloc(ps, Layout::from_size_align(4096, 8).unwrap());

关于rust - 如何将大于u8的数字写到指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65464796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com