相关疑难解决方法(0)

如何在Rust 1.0中的堆上分配数组?

已经有一个问题,但与Rust 0.13有关,语法似乎已经改变.从当前文档中我了解到在堆上创建数组将是这样的:

fn main() {
    const SIZE: usize = 1024 * 1024;
    Box::new([10.0; SIZE]);
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个程序时,我收到以下错误:

thread '<main>' has overflowed its stack
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

arrays heap rust

12
推荐指数
3
解决办法
2695
查看次数

使用 Box 分配大型数组时,线程“&lt;main&gt;”溢出了堆栈

我正在实施Comsort。我想在堆栈上创建固定大小的数组,但它显示stack overflow. 当我将其更改为位于堆上时(Rust by Example 表示要在我们必须使用的堆中分配Box),它仍然显示stack overflow

fn new_gap(gap: usize) -> usize {
    let ngap = ((gap as f64) / 1.3) as usize;
    if ngap == 9 || ngap == 10 {
        return 11;
    }
    if ngap < 1 {
        return 1;
    }
    return ngap;
}

fn comb_sort(a: &mut Box<[f64]>) {
    // previously: [f64]
    let xlen = a.len();
    let mut gap = xlen;
    let mut swapped: bool;
    let mut temp: f64; …
Run Code Online (Sandbox Code Playgroud)

heap-memory dynamic-memory-allocation rust

2
推荐指数
2
解决办法
2529
查看次数