rust - 如何从 Rust 字符串创建 *mut u8?
问题描述
我是 Rust 的新手。我想创建一个可变的 u8 缓冲区。
我试过
let mut str = "hello";
let r = str as *mut u8;
但我明白了
error[E0606]: casting `&str` as `*mut u8` is invalid
我想知道如何以及为什么。“你好”的类型是什么?铸造如何在 Rust 上工作?
解决方案
首先: str 不需要是可变的,因为你没有改变它。第二:'hello' 是类型&str
(字符串切片)。第三:您可以通过调用 as_bytes() 转换&str
为&[u8]
,这是您需要的缓冲区。在变量名之前追加mut
使其可变。
let str = "hello";
let mut r = str.as_bytes();
println!("{:?}", r);
推荐阅读
- julia - 离线使用 Julia 包管理器
- node.js - NestJS 如何将自定义 Logger 添加到自定义 ExceptionFilter
- grails - Grails 如何在不影响域对象值的情况下使用 Date.ClearTime()
- python - 在使用 iCalUID “导入”日历后,在“events.update()”功能上使用 Google Calendar API 向“与会者”发送通知时出现问题?
- android - 视图之间的相等间距,其中一些使用 ConstraintLayout 上的父级百分比
- php - DB2 选择设置参数,然后用参数值插入
- ios - Swift - 调用 .removeObserver 的正确位置是否总是 deinit()?
- datetime - 如何在长生不老药中获得上个月
- android - 自定义、自托管的 Android 市场
- ios - 放大视图时块大小的图像