From c515cc21f264c494103a098097c41610d3735b0a Mon Sep 17 00:00:00 2001 From: Lenny PENG Date: Sun, 14 May 2023 14:23:55 +0800 Subject: [PATCH] Update Ch15 --- src/Ch15_Smart_Pointers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ch15_Smart_Pointers.md b/src/Ch15_Smart_Pointers.md index 19216cc..a285b9a 100644 --- a/src/Ch15_Smart_Pointers.md +++ b/src/Ch15_Smart_Pointers.md @@ -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。 相较于真实世界的程序,这个示例中创建出循环引用的那些后果并不算非常残酷:在这里创建出那个循环引用之后,这个程序就立马结束了。然而,在更为复杂的程序在某个循环中分配了大量内存,并在其上耗费较长时间时,那么这个程序就会用到相比于其所需要更多的内存,且可能会是系统不堪重负,造成系统耗尽可用内存。