Update chapter_3_7.md

This commit is contained in:
令狐一冲
2023-05-17 14:58:38 +08:00
committed by GitHub
parent d1f677957c
commit 366344bd9f

View File

@@ -139,6 +139,7 @@ fn main() {
}
```
在第2行定义String类型时并不能确定最终字符串的大小所以字符串内容本身应该存储在堆上。结合什么String类型的本质的内容可以得到String类型的存储如下
![注释](../../assets/5.png)
String类型本身是三个字段指针、长度、容量在编译时是已知的大小存储在栈上String类型绑定的字符串在上面代码中是“AB”在编译时大小未知是运行时在堆上分配内存分配后的内存地址保存在String类型的指针字段中内存大小保存在cap字段中内存上存储的字符串长度保存在len字段中。
@@ -170,6 +171,7 @@ fn main() {
}
```
s是String类型字符串“Hello world”是存储在堆内存上的其内存布局如下
![注释](../../assets/6.png)
当执行let s1 = s后内存布局如下