6.6堆式管理和垃圾回收技术 在设计实际软件系统时,除了子程序调用和部分缓冲区管理等算法符合这一要求之外,大量内存分配是以随机的方式进行的,因此不符合栈式管理的要求。 这种显式存储管理的代码通常需要程序员在设计程序时直接编写,而无法由编译器自动插入。实现显式存储管理的一种有效方法,就是所谓的“堆式内存管理”。 实际上,和堆相关的管理并不都是显式的。垃圾收集技术的主要目的就是提供程序员不可见的堆内存回收机制,从而避免错误的堆空间释放引起的内存访问错误。 堆式存储管理的基本要求 第一,堆(Heap)是一种组织内存的有效方法。与栈式分配由编译器产生的代码自动分配和释放不同,程序员需要自己编写代码来实现对堆空间的分配与释放。 第二,堆空间的分配和释放必须成对出现。因此,无论是引用未分配堆空间上的存储单元(例如C语言程序中的未初始化的指针变量),或是忘记释放和多次释放堆空间上的内存都可能导致堆访问的问题。引用未分配空间或多次释放堆空间,可能引起内存访问异常;而忘记释放堆空间则会引起内存泄漏问题。 堆式管理的主要形式 第一种,采用外部堆管理支持。C语言是这种方法的典型代表。C语言本身并不支持堆存储管理;但C支持指针机制,可为访问堆空间提供直接支持。C语言通过标准库的方式提供对堆式内存管理的支持。 第二种,采用内置存储管理语句的方式支持。例如C++语言所支持的new和delete语句。编译
您可能关注的文档
最近下载
- 2025年北京市初二学业水平地生会考真题试卷(+答案).docx VIP
- 国开电大24271《劳动与社会保障法》期末机考真题及答案(第103套).pdf
- 电动葫芦出厂检验报告.doc VIP
- 基于多方法融合的曲肘式合模机构结构参数优化研究.docx VIP
- 2026年湖南公务员考试(法律专业知识)历年参考题库含答案详解.docx VIP
- 数据资产的确认、计量和报告基于商业模式视角.pdf VIP
- 一年思想汇报总结(2篇).docx VIP
- 既有建筑改造施工专项方案.docx VIP
- 浏阳市统一社会招聘事业单位人员考试真题及答案.pdf VIP
- AI大模型与AIGC技术在公安领域的应用解决方案【99页PPT】.pptx VIP
原创力文档

文档评论(0)