メモリを初期化する方法

手順:

  1. MaybeUninit<T> を作成する
  2. そこに値を書き込む
  3. 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}");
}

未初期化メモリを扱うには、一般的に次のワークフローに従います: 作成、書き込み、 確認。

  1. MaybeUninit<T> を作成します。::uninit() コンストラクタは最も 汎用的なものですが、書き込みも同時に行う別のものもあります。

  2. T 型の値を書き込みます。これは safe Rust から利用できることに注意してください。safe Rust に とどまることは有用です。なぜなら、書き込む値が 有効であることを保証しなければならないからです。

  3. .assume_init() メソッドを使って、そのメモリが初期化済みであることを 型システムに確認させます。