Merge pull request #648 from gty4/patch-1

Update ch08-01-vectors.md
This commit is contained in:
KaiserY 2022-09-29 11:52:29 +08:00 committed by GitHub
commit d44144a742
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,7 +92,7 @@ Rust 提供了两种引用元素的方法的原因是当尝试使用现有元素
{{#include ../listings/ch08-common-collections/listing-08-07/output.txt}}
```
示例 8-7 中的代码看起来应该能够运行:为什么第一个元素的引用会关心 vector 结尾的变化?不能这么做的原因是由于 vector 的工作方式:在 vector 的结尾增加新元素时,在没有足够空间将所有所有元素依次相邻存放的情况下,可能会要求分配新内存并将老的元素拷贝到新的空间中。这时,第一个元素的引用就指向了被释放的内存。借用规则阻止程序陷入这种状况。
示例 8-7 中的代码看起来应该能够运行:为什么第一个元素的引用会关心 vector 结尾的变化?不能这么做的原因是由于 vector 的工作方式:在 vector 的结尾增加新元素时,在没有足够空间将所有元素依次相邻存放的情况下,可能会要求分配新内存并将老的元素拷贝到新的空间中。这时,第一个元素的引用就指向了被释放的内存。借用规则阻止程序陷入这种状况。
> 注意:关于 `Vec<T>` 类型的更多实现细节,请查看 [“The Rustonomicon”][nomicon]