为了解决分区分配带来的碎片问题,引入了伙伴系统:无论已分配分区或空闲分区,其大小均为2的k次幂 伙伴系统:两个大小相同的相邻块合并成一个更大的块时,首地址必须是块(合成后的块)大小的整数倍。 例题: 对于8KB大小的块,地址224KB相邻的8KB大小的块的首地址是224KB-8 = 216KB,22 ...
分类:
其他好文 时间:
2020-07-15 23:26:48
阅读次数:
108
从存储程序计算机到冯诺依曼体系结构 存储程序计算机的主要思想是将程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序中编写好的指令执行,直至程序执行结束。 冯诺依曼体系结构的主要特点是,CPU和内存是计算机的两个最主要组成部分,内存中保存着数据和程序指令, ...
分类:
其他好文 时间:
2020-07-09 19:22:04
阅读次数:
48
memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。 但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。 memmove的处理措施: (1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝 (2 ...
分类:
其他好文 时间:
2020-07-07 00:02:26
阅读次数:
84
数组首元素区分: a, &a, a[0] #include <stdio.h> int main() { int a[8] = {0}; printf("a 数组首地址:%p\n", a); printf("&a 数组首地址:%p\n", &a); printf("&a[0]数组首地址:%p\n", ...
分类:
编程语言 时间:
2020-06-09 20:24:10
阅读次数:
124
Java中的数组 数组是在内存中存储相同数据类型的连续的空间 声明一个数组就是在内存空间中划出一串连续的空间Java中的数组 数组名代表的是连续空间的首地址 通过首地址可以依次访问数组所有元素 元素在数组中的排序叫做下标从零开始Java数组 数组的使用 数组长度一旦声明,不可改变不可追加 声明一个i ...
分类:
编程语言 时间:
2020-06-08 12:50:42
阅读次数:
59
冒泡排序 前置知识 确定数组需要传入两个参数: 数组的首地址和数组元素的个数 冒泡规则,假设一个 int a[5] 的数组,升序规则如下 ? 第一次排序 : 1. a[0]与a[1]比较,大的值放在a[1],小的值放在a[0]; 2. a[1]与a[2]比较,大的值放在a[2],小的值放在a[1]; ...
分类:
编程语言 时间:
2020-05-23 12:56:43
阅读次数:
52
一.this指针 1.不同的对象,数据成员是独有的,成员函数是共享的 2.调用成员函数的时候,会默认传入this指针,this指针指向了调用函数的对象的首地址 3.this通过ecx传递,调用约定 __thiscall 4.成员函数的调用约定可以修改 5.this指针是class *const th ...
分类:
其他好文 时间:
2020-05-12 09:42:13
阅读次数:
49
页式内存管理上A.段式内存管理1.指的是一段连续的内存空间2.段式内存管理-程序的各个部分相对独立(数据段,代码段),早期x86处理器无法通过一个寄存器访问所有内存单元,解决早期程序运行的重定位问题段式内存管理的应用,在x86系列的处理器中,硬件对段式内存管理进行了直接支持;另外,段式内存管理也可以使用纯软件实现,内存单元地址=段首地址+段内偏移地址B.段式内存管理在C语言中的实现1.数组的本质:
分类:
其他好文 时间:
2020-05-09 10:44:15
阅读次数:
102
数组的名称就是数组再内存中的首地址。若定义一个指针变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组 例如:int *p,a[10] p=a; 此时就是将数组a的首地址赋给p 也可以写成如下形式: p=&a[0] 注意: 在使用数组指针的时候,输入可以写成 对于一维数组: int a[ ...
分类:
编程语言 时间:
2020-05-07 00:25:49
阅读次数:
74
线性表 顺序表示 定义: 相关函数: C语言: malloc(m) 开辟 m 字节长度的地址空间,并返回这段空间的首地址。 sizeof(x) 计算变量 x 的长度。 free(p) 释放指针 p 所指变量的存储空间,即彻底删除一个变量。 C++:new 初始化线性表 参数用引用 参数用指针 销毁线 ...
分类:
编程语言 时间:
2020-05-04 17:31:31
阅读次数:
57