在Rust中如何申请堆内存
在Rust中,可以使用Box
关键字来在堆上分配内存。Box
是一个智能指针类型,它提供了所有权转移语义,可以将其值分配到堆上,然后通过变量引用进行访问。
示例代码
fn main(){
let mut vec = Box::new(vec![0; 1]);
vec.push(1);
vec.push(2);
vec.push(3);
println!("{:?}",vec);
drop(vec);
}
在上面的示例中,我们使用Box::new
函数来分配内存并返回一个指向堆上数据的智能指针。
需要注意的是,由于Box
持有数据的所有权,因此必须确保它不会超出其作用域范围,否则会导致内存泄漏。可以使用drop
函数来手动释放Box
指向的内存,或者将其传递给另一个变量以转移所有权。