 Rust 程序设计语言 简体中文版 1.85.0在栈上。右侧则是堆 上存放内容的内存部分。 s1 name value ptr len 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o 图 4-1:将值 "hello" 绑定给 s1 的 String 在内存中的表现形式 长度表示 String 的内容当前使用了多少字节的内存。容量是 String 从分配器总共获取了多少 字节的内存。 ptr len 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o s2 name value ptr len 5 capacity 5 图 4-2:变量 s2 的内存表现,它有一份 s1 指针、长度和容量的拷贝 这个表现形式看起来并不像图 4-3 中的那样,如果 Rust 也拷贝了堆上的数据,那么内存看起 来就是这样的。如果 Rust 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o 图 4-3:另一个 s2 = s1 时可能的内存表现,如果 Rust 同时也拷贝了堆上的数据的话 之前我们提到过当变量离开作用域后,Rust 自动调用 drop 函数并清理变量的堆内存。不过图 4-2 展示了两个数据指针指向了同一位置。这就有了一个问题:当 s2 和 s1 离开作用域,它们 都会尝试释放相同的内存。这是一个叫做0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0在栈上。右侧则是堆 上存放内容的内存部分。 s1 name value ptr len 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o 图 4-1:将值 "hello" 绑定给 s1 的 String 在内存中的表现形式 长度表示 String 的内容当前使用了多少字节的内存。容量是 String 从分配器总共获取了多少 字节的内存。 ptr len 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o s2 name value ptr len 5 capacity 5 图 4-2:变量 s2 的内存表现,它有一份 s1 指针、长度和容量的拷贝 这个表现形式看起来并不像图 4-3 中的那样,如果 Rust 也拷贝了堆上的数据,那么内存看起 来就是这样的。如果 Rust 5 capacity 5 indexvalue 0 h 1 e 2 l 3 l 4 o 图 4-3:另一个 s2 = s1 时可能的内存表现,如果 Rust 同时也拷贝了堆上的数据的话 之前我们提到过当变量离开作用域后,Rust 自动调用 drop 函数并清理变量的堆内存。不过图 4-2 展示了两个数据指针指向了同一位置。这就有了一个问题:当 s2 和 s1 离开作用域,它们 都会尝试释放相同的内存。这是一个叫做0 码力 | 562 页 | 3.23 MB | 25 天前3
 人工智能安全治理框架 1.0智能学科同步发展,依托学校、科研机构等加强人工智能安全设计、开发、治 理人才的培养,支持培养人工智能安全前沿基础领域顶尖人才,壮大无人驾驶、- 12 - 人工智能安全治理框架 智能医疗、类脑智能、脑机接口等领域安全人才队伍。 5.9 建立健全人工智能安全宣传教育、行业自律、社会监督机制。 面向政府、企业、社会公用事业单位加强人工智能安全规范应用的教育培训。 加强人工智能安全风险及防范应0 码力 | 20 页 | 3.79 MB | 1 月前3 人工智能安全治理框架 1.0智能学科同步发展,依托学校、科研机构等加强人工智能安全设计、开发、治 理人才的培养,支持培养人工智能安全前沿基础领域顶尖人才,壮大无人驾驶、- 12 - 人工智能安全治理框架 智能医疗、类脑智能、脑机接口等领域安全人才队伍。 5.9 建立健全人工智能安全宣传教育、行业自律、社会监督机制。 面向政府、企业、社会公用事业单位加强人工智能安全规范应用的教育培训。 加强人工智能安全风险及防范应0 码力 | 20 页 | 3.79 MB | 1 月前3
共 2 条
- 1













