Rust中文翻译14

翻译 2015年07月08日 00:19:23
Page 71

我们给j,i,h分配了内存.i在堆上,所以是一个指向堆的指针保存在i里.然后再main()函数的结尾,foo()函数被调用:
地址 名字
230   20
... ... ...
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3
x,y,z都得到了各自的内存.参数x拥有和j一样的值,那是因为我们就是这样传参的.它其实是一个指向0地址的指针,因为j指向的是h.

下面,foo()函数调用了baz(),传递了z:
地址 名字
230   20
... ... ...
7 g 100
6 f 4
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3
我们给f和g分配了内存.baz()函数非常短,所以当他结束的时候,我们释放了它的栈帧:
地址 名字
230   20
... ... ...
7 g 100
6 f 4
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3

Page 72

然后,foo()函数调用了bar()函数,参数是x和z:
地址 名字
230   20
(230)-1   5
... ... ...
10 e 9
9 d (230)-1
8 c 5
7 b 4
6 a 0
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3
我们又在堆上分配了另一个空间,所以我们需要再230减1的地方分配.这要比写作1,073,741,823来的容易理解.在任何时候,我们都像平常一样设置变量的值.

在bar()函数的结尾,它又调用了baz():
地址 名字
230   20
(230)-1   5
... ... ...
12 g 100
11 f 4
10 e 9
9 d (230)-1
8 c 5
7 b 4
6 a 0
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3
在这里,我们达到了最深的栈帧!wow!恭喜你跟随我来到了这么远.
当baz()结束的时候,我们释放了f和g的内存:

Page 73

地址 名字
230   20
(230)-1   5
... ... ...
10 e 9
9 d (230)-1
8 c 5
7 b 4
6 a 0
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3
然后,我们从bar()返回.d是一个Box<T>类型,所以它也释放了它所指向的地址:(230)-1.

地址 名字
230   20
... ... ...
5 z 4
4 y 10
3 x 0
2 j 0
1 i 230
0 h 3

在这之后,foo()函数也返回:

地址 名字
230   20
... ... ...
2 j 0
1 i 230
0 h 3
最后,在main()函数结束以后,所有的内存都被清除.当i被释放的时候,堆上的最后一块内存也被清理了.

相关文章推荐

Rust中文翻译20

Page 100 并发和并行在计算机科学中是非常重要的主题.在工业领域也很火.计算机如今有越来越多的核心,然而很多程序员还没有准备好使用它们. Rust安全的内存特性同样适用于并发存储.并发的...
  • zcmit
  • zcmit
  • 2015年07月11日 15:49
  • 1179

Rust中文翻译12

Page 63 我们已经学习了如何写一些Rust代码了.但是能写Rust代码和能写好的Rust代码又很大区别. 这一章讲述一些相对独立的指南,告诉你如何把的Rust代码更进一步.一...
  • zcmit
  • zcmit
  • 2015年07月03日 17:11
  • 823

Rust中文翻译1

用kindle看trpl有一段时间了,由于总是在地铁里看,对知识的巩固和加深理解没有好处,还是决定自己翻译一遍吧,便于自己学习,也可以给其他人以参考. 平时加班太多了,我希望能坚持做完. 闲话不说,上...
  • zcmit
  • zcmit
  • 2015年06月14日 17:16
  • 2474

rust book 中文翻译

  • 2015年07月10日 12:03
  • 2.24MB
  • 下载

苹果App Store审核指南中文翻译(更新)2014版

(注:苹果应用商店审核指南>中文翻译最近一次更新为2013-03-04,文中红色部分是相对于2013-03-04版本的新增内容,绿色部分代表更改的内容,蓝色表示苹果相关官方文档的链接。)   ...

spring-boot配置文件-security(中文翻译)

spring-boot配置文件-security(中文翻译)

iOS-苹果应用商店审核指南中文翻译

前言   感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业。我们希望帮助您加 入这个成功的组织。这是我们首次发布《应用程序...

苹果App Store审核指南中文翻译(最新2013-03-04)

Introduction We're pleased that you want to invest your talents and time to develop applications fo...

Masonry瀑布流式布局库(中文翻译)

英文原版网站链接:http://masonry.desandro.com/。英文原版包含大量例程,请对照阅读。Masonry是什么?Masonry是一个JavaScript网格布局库。它的作用是在可用...

james blunt no tears 歌词的中文翻译

来自 http://zhidao.baidu.com/question/197395361.html 上面那人的歌词少了开头两句。 don't I know it, nobody has to sa...
  • huyoo
  • huyoo
  • 2011年07月26日 00:26
  • 5405
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rust中文翻译14
举报原因:
原因补充:

(最多只允许输入30个字)