メモリを初期化する方法
手順:
MaybeUninit<T>を作成する- そこに値を書き込む
- Rust に、そのメモリが初期化済みであることを通知する
// Copyright 2026 Google LLC // SPDX-License-Identifier: Apache-2.0 use std::mem::MaybeUninit; fn main() { // ステップ 1: MaybeUninit を作成する let mut uninit = MaybeUninit::uninit(); // ステップ 2: 有効な値をメモリに書き込む uninit.write(1); // ステップ 3: メモリ位置が有効であることを型システムに伝える let init = unsafe { uninit.assume_init() }; println!("{init}"); }
未初期化メモリを扱うには、一般的に次のワークフローに従います: 作成、書き込み、 確認。
-
MaybeUninit<T>を作成します。::uninit()コンストラクタは最も 汎用的なものですが、書き込みも同時に行う別のものもあります。 -
T 型の値を書き込みます。これは safe Rust から利用できることに注意してください。safe Rust に とどまることは有用です。なぜなら、書き込む値が 有効であることを保証しなければならないからです。
-
.assume_init()メソッドを使って、そのメモリが初期化済みであることを 型システムに確認させます。