相关疑难解决方法(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
查看次数

如何在Rust中运行时分配数组?

一旦我分配了阵列,我该如何手动释放它?指针算法在不安全模式下是否可行?

就像在C++中一样:

double *A=new double[1000];
double *p=A;
int i;
for(i=0; i<1000; i++)
{
     *p=(double)i;
      p++;
}
delete[] A;
Run Code Online (Sandbox Code Playgroud)

Rust中有任何等效的代码吗?

memory allocation dynamic rust

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

在运行时在堆上分配缓冲区

我正在通过编写简单的二进制解码器来学习 Rust。

我正在使用BufferedReader带有byteorder crate 的 a来读取数字,但是我在读取字节缓冲区时遇到了问题。

我想将字节数据读入在运行时分配的缓冲区中。然后我想将此缓冲区的所有权传递给一个结构。当 struct 不再使用时,应释放缓冲区。

除了一些Vec::with_capacity()hacks之外,似乎没有办法在堆上分配运行时确定的大小的数组。任何想法如何使用适当的 Rust 语义来实现它?

heap memory-management ownership rust

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