链表和内存管理

链表

链表由一个个节点组成。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:数据域和指针域。数据域存放数据成员,指针域指向下一个节点地址。链表按此结构对各节点的访问需从链表的头找起,后续节点的地址由当前节点给出。

单链表有一个头节点head,指向链表在内存的首地址。无论在表中访问那一个节点,都需要从链表的头开始,顺序向后查找。链表的尾节点由于无后续节点,其指针域为空,写作为NULL

内存管理

生活中常说的内存,比如“8G内存条”、“500G硬盘”、“电脑内存”等这些都指的是物理内存。

除此之外还有一种内存叫做虚拟内存。虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

比如说4G的虚拟内存,哪怕你的物理内存只有1G,虚拟内存还是4G。

这4G的虚拟内存分成两个部分,1G的内核态和3G的用户态。

其中用户态还分成4个区,分别是数据段、代码段、栈空间、堆空间。数据段存放全局变量、static静态变量。代码段存放代码和常量,被认为是只读的。栈空间存放局部变量(形参也是局部变量)。而像malloc,free之类的函数都是在对堆空间操作。

堆和栈的区别:

堆是操作系统管理,申请和释放都由操作系统完成。

栈由用户管理,申请释放由用户自己完成。                                                                                                                 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值