Update Ch15

This commit is contained in:
Lenny PENG 2023-05-14 14:23:55 +08:00
parent ba0fc959e9
commit c515cc21f2

View File

@ -1093,7 +1093,7 @@ b 的下一条目 = Some(RefCell { value: Cons(5, RefCell { value: Nil }) })
*图 15-04列表 `a``b` 相互指向的引用循环*
在取消注释掉其中最后一个 `println!` 而运行该程序时Rust 就会尝试以 `a` 指向 `b` 指向 `a` 如此往复,打印出这个循环,直到他溢出内存栈为止
如果咱们取消对最后一个 `println` 的注释并运行程序Rust 会尝试打印这个循环,`a` 指向 `b` 指向 `a`如此反复直到程序溢出栈overflows the stack
相较于真实世界的程序,这个示例中创建出循环引用的那些后果并不算非常残酷:在这里创建出那个循环引用之后,这个程序就立马结束了。然而,在更为复杂的程序在某个循环中分配了大量内存,并在其上耗费较长时间时,那么这个程序就会用到相比于其所需要更多的内存,且可能会是系统不堪重负,造成系统耗尽可用内存。