这个问题在这里已有答案:
我在Rust中做了一些分析 . 因此,我有一个相当大的查找表,创建一个需要430,467,210字节的多维数组 . 我已经多次尝试将其加载到Rust中,但是我一直在堆栈溢出 . 最近我使用 Box 了解了堆分配,并尝试将我的文件读入盒装切片 . 它仍然不起作用:
Box
let mut temp_buffer = Box::new([0u8; 430467210]); move_file.read(&mut *temp_buffer);
盒装数组在将数组移动到堆之前仍然可以临时堆栈分配(特别是在非优化的构建中) . 要确保从开始分配堆,请使用向量:
let mut temp_buffer = vec![0u8; 430467210]; move_file.read(&mut temp_buffer);
1 回答
盒装数组在将数组移动到堆之前仍然可以临时堆栈分配(特别是在非优化的构建中) . 要确保从开始分配堆,请使用向量: