7.1 存储组织
7.2 空间的栈式分配
7.2.4栈中的变长数据,在c语言中所有变长数据都在堆中。
7.2.1 1)这种情况下快排效果最差O(n*n)
2)栈中最多状态情况:
P(1, 9)
P(1, 8)
...
P(1,2)
P(1,1)
共9个
7.2.3 1) f(5)
f(4) f(3)
f(3) f(2) f(2) f(1)
f(2) f(1) f(1) f(0) f(1) ff(0)
f(1) f(0)
2)
f(5)
f(4)
f(3)
f(2)
f(1)
参数
返回值
局部s、t
3)
f(5)
f(3)
f(1)
参数
返回值
局部s、t
7.2.4 上面g的活动记录,下面f的活动记录
g参数
g返回值
g中保存的机器状态
g中局部变量
f参数
f返回值 这一行及以上g创建,g写入值
f控制链
f局部数据
7.2.5
a = a+1 = 4
a = a+2 = 6
a+a = 12
7.2.6 c=4 b=&c a=&b
x = 4 py = &c ppz=&b
c += 1 = 5
c += 2 = 7
x += 3 = 7
return 7+7+7=21
7.3 栈中非局部数据的访问
7.4 堆管理
7.4.1 80 30 60 50 70 20 40
1)
| 80 | 30 | 60 | 50 | 70 | 20 | 40 |
| 44->28 | 12 | ** |
2)
| 80 | 30 | 60 | 50 | 70 | 20 | 40 |
| ** | ** | ** | 8 |
7.5 垃圾回收概述
7.5.1
1) B的引用计数-1
2) X以外其它变量计数-1
3) F引用计数-1
7.5.2 D引用计数-1
7.6 基于跟踪的回收的介绍
7.6.1 1) A->B被删除,标记为reached依次包括X A C F H I G E,B和D将被回收
2)A->C,X A B D E G H C F,没有可以回收
3)A->D,D G将被回收
4)B,C将被回收
7.6.2 只考虑第一个A->B被删除
| Free | Unreached | Unscanned | Scanned | |
| ** | All | null | null | |
| ** | All-X | X | null | |
| ** | All-X-A | A | X | |
| ... | ... | ... | ... | |
| ** | B,D | null | X-B,D | |
| **+B,D |
7.6.3 只考虑第一个A->B被删除
初始:X A B ... I
0 100 200 ... 900
计算新位置之前,B,D没有被访问到,其它对象从左往右排
7.6.4
7.7 短停顿垃圾回收
7.8 垃圾回收中的高级论题
本文深入探讨了C语言中内存管理的核心概念,包括栈与堆的分配、变长数据存储、快排效率受制因素及递归调用的活动记录,同时解析了垃圾回收的过程与机制,如引用计数法、基于跟踪的回收等。
2951

被折叠的 条评论
为什么被折叠?



