动态分配和容器
C 里动态分配通常从这几个函数开始:
void *p = malloc(size);
p = realloc(p, new_size);
free(p);
Rust 普通代码很少直接调用分配器。更常见的是用拥有类型表达“这块内存归谁管”:
Box<T> -> 堆上的一个 T
Vec<T> -> 堆上的连续可增长数组
String -> 堆上的可增长 UTF-8 文本
这些类型内部当然会分配和释放内存,但调用方通常不写 free。值离开作用域时,释放由类型的 Drop 完成。