首页 > 解决方案 > 如何从 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 上工作?

标签: rust

解决方案


首先: str 不需要是可变的,因为你没有改变它。第二:'hello' 是类型&str(字符串切片)。第三:您可以通过调用 as_bytes() 转换&str&[u8],这是您需要的缓冲区。在变量名之前追加mut使其可变。

   let str = "hello";
   let mut r = str.as_bytes();
   println!("{:?}", r);

推荐阅读