0
巨大なNxN配列を作成する必要があります。単純な配列はスタック上に作成されるので、そこでは成功しません。静的配列はconst
またはunsafe mut
でなければなりません。非常に大きな配列のVecを初期化するには?
私はその配列をINGのBox
を試してみました:
const N: usize = 1000000;
let mut boxed: Box<[usize; N]> = Box::new([0; N]);
boxed[1] = 1;
しかし、それは、その後Box
にコピーされた一時的な配列を作成しますので、それは、おそらく、とにかくスタックをオーバーフローします。
Iは、配列のVec
を試みた:
const N: usize = 1000000;
let mut v = Vec::<[usize; N]>::with_capacity(10);
v.push([0; N]);
同じ結果と。私の知る限り、with_capacity
はメモリだけを割り当てます。 Rustはコンストラクタを持っていないので、私はまだそのメモリに何かをプッシュ(すなわち)しなければなりません。
だから、夜間に新しいプレースメントに行くことなく、それを行う正しい方法は何ですか?
あなたは大きなスタックサイズを持つ専用のスレッドでそれを行うことができ
私はリンク重複(の1つ)にこの回答を移動することをお勧めしたいです。 – Shepmaster