mirror of
https://github.com/rust-lang-cn/book-cn.git
synced 2025-02-02 15:28:40 +08:00
doc: Optimize the description at ch09-01
This commit is contained in:
parent
c9c49457d7
commit
28fe8a768c
@ -52,7 +52,7 @@ fn main() {
|
||||
|
||||
<span class="caption">示例 9-1:尝试访问超越 vector 结尾的元素,这会造成 `panic!`</span>
|
||||
|
||||
这里尝试访问 vector 的第一百个元素(这里的索引是 99 因为索引从 0 开始),不过它只有三个元素。这种情况下 Rust 会 panic。`[]` 应当返回一个元素,不过如果传递了一个无效索引,就没有可供 Rust 返回的正确的元素。
|
||||
这里尝试访问 vector 的第 100 个元素(这里的索引是 99,因为索引从 0 开始),不过它只有 3 个元素。这种情况下 Rust 会 panic。`[]` 应当返回一个元素,但是如果传递了一个无效的索引,那么 Rust 在这里返回任何元素都不会是正确的。
|
||||
|
||||
这种情况下其他像 C 这样语言会尝试直接提供所要求的值,即便这可能不是你期望的:你会得到任何对应 vector 中这个元素的内存位置的值,甚至是这些内存并不属于 vector 的情况。这被称为 **缓冲区溢出**(*buffer overread*),并可能会导致安全漏洞,比如攻击者可以像这样操作索引来读取储存在数组后面不被允许的数据。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user