7.1.1 未初始化数组
01-未初始化数组 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/unsafe-deep-dive/initialization/maybeuninit.html
MaybeUninit<T> 允许 Rust 引用未初始化的内存。
| |
「Safe Rust 无法引用可能未初始化的数据。」
「然而,所有数据进入程序时都是未初始化的。」
「因此,我们需要类型系统中的某种桥梁,让内存能够完成过渡。
MaybeUninit<T>就是这种类型。」「
MaybeUninit<T>与Option<T>类型非常相似,尽管语义截然不同。对MaybeUninit<T>而言,Option::None的等价物是未初始化内存,而向其中写入是安全的。」「从可能未初始化的内存中读取极其危险。」
01-未初始化数组 — Comprehensive Rust
02-MaybeUninit::zeroed() 方法 — Comprehensive Rust
03-ptr::write 与赋值 — Comprehensive Rust