gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:51:56 24 4
gpt4 key购买 nike

分配数组后,如何手动释放它?在不安全模式下是否可以进行指针运算?

就像在 C++ 中一样:

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

Rust 中是否有任何等效代码?

最佳答案

根据您的问题,我建议您阅读 Rust Book如果你还没有这样做的话。惯用的 Rust 几乎从不涉及手动释放内存。

至于相当于动态数组,你要a vector .除非你正在做一些不寻常的事情,否则你应该避免在 Rust 中进行指针运算。您可以将上面的代码写成不同的形式:

// Pre-allocate space, then fill it.
let mut a = Vec::with_capacity(1000);
for i in 0..1000 {
a.push(i as f64);
}

// Allocate and initialise, then overwrite
let mut a = vec![0.0f64; 1000];
for i in 0..1000 {
a[i] = i as f64;
}

// Construct directly from iterator.
let a: Vec<f64> = (0..1000).map(|n| n as f64).collect();

关于memory - 如何在运行时在 Rust 中分配数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com