From 882e9dcbe0bfff8f9646329a409e8ca912ed4474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 17 May 2023 15:00:11 +0800 Subject: [PATCH] Update chapter_3_7.md --- src/chapter_3/chapter_3_7.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/chapter_3/chapter_3_7.md b/src/chapter_3/chapter_3_7.md index 92f183a..05c418f 100644 --- a/src/chapter_3/chapter_3_7.md +++ b/src/chapter_3/chapter_3_7.md @@ -189,6 +189,7 @@ s是String类型,字符串“Hello world!”是存储在堆内存上的, ![注释](../../assets/8.png) - 深拷贝 + 除了拷贝栈上的内容外,还拷贝堆内存中的内容,就叫做深拷贝。 对于上面的String类型,执行let s1 = s后,除了把s的len、cap中的值拷贝给s1的len、cap外,还在堆上重新分配一块内存,将s的ptr指向的堆内存的内容拷贝到这块内存,然后s1的ptr指向这块内存,这种拷贝就叫做深拷贝。深拷贝发生后,s的ptr和s1的ptr指向不同的堆内存,但是堆内存中存储的内容一样。深拷贝发生后的内存布局如下: