Rust
Rust 核心篇 (五):所有权模型 (Ownership) 与堆栈内存管理
Waitwalker2026-08-2314 min
## 1. 所有权三定律
1. Rust 中每一个值都有一个被称为其 **所有者 (Owner)** 的变量。
2. 值在任一时刻 **有且只有一个** 所有者。
3. 当所有者离开作用域时,这个值将被 **自动丢弃 (Drop)** 并释放对应的堆内存。
```rust
fn main() {
let s1 = String::from("hello"); // s1 申请堆内存
let s2 = s1; // 所有权转移 (Move),s1 失效!
// println!("{}", s1); // 编译报错:borrow of moved value: `s1`
println!("{}", s2); // 正常打印
} // s2 离开作用域,自动调用 drop 释放堆空间
```
## 2. 为什么是 Move 而不是浅拷贝?
如果允许 `s1` 和 `s2` 同时指向同一片堆内存,当二者离开作用域时会触发 **双重释放 (Double Free)**,造成严重的内存安全隐患。因此 Rust 强制通过 Move 语义使得旧变量立刻失效。
#Rust#所有权#内存模型#核心架构
回到文章列表 →