<分区>
我要用 Rust 做一些分析。因此,我有一个相当大的查找表,它创建一个需要 430,467,210 字节的多维数组。我已经多次尝试将其加载到 Rust 中,但我一直遇到堆栈溢出。最近我了解了如何使用 Box
进行堆分配,并尝试将我的文件读入 boxed slice。它仍然不起作用:
let mut temp_buffer = Box::new([0u8; 430467210]);
move_file.read(&mut *temp_buffer);
<分区>
我要用 Rust 做一些分析。因此,我有一个相当大的查找表,它创建一个需要 430,467,210 字节的多维数组。我已经多次尝试将其加载到 Rust 中,但我一直遇到堆栈溢出。最近我了解了如何使用 Box
进行堆分配,并尝试将我的文件读入 boxed slice。它仍然不起作用:
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);
关于file - 将文件读入盒装切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337053/