Rust 内存管理与应用实践
1. Rust 内存所有权与指针
1.1 单一所有权机制
在 Rust 中,变量对堆上的对象具有单一所有权。例如, x 变量是堆上 my_rectangle 对象的唯一所有者。当 allocate_rect() 函数执行完毕,由于最后一个所有者消失,分配给 x 的堆内存会被释放。这种单一所有权由编译器强制执行,防止内存泄漏和悬空指针等问题。
以下代码展示了所有权的转移:
fn swap_around() {
let my_rect: Box<MyRectangle> = Box::new(MyRectangle{x:5, y:5, length:25, breadth:15});
let dup_rect = my_rect; // dup_rect 现在是所有者
println!("{}", dup_rect.x);
println!("{}", my_rect.x); // 报错 - 使用了已移动的值
}
在这个例子中, my_rect 的所有权转移给了 dup_rect ,之后再使用 my_rect 会导致编译错误。
Rust内存管理与四大实践项目
超级会员免费看
订阅专栏 解锁全文
1388

被折叠的 条评论
为什么被折叠?



