2013-11-22 66 views
0

有没有关于c中基于区域的内存管理的任何文档?而不使用任何库(用于基于区域的内存管理)。在c中使用基于区域的内存管理c

当它教导如何分配区域,并将它们存储任何数据结构(例如链表)在它和它们破坏其清理而不是释放每个节点

+2

这种形式的内存管理在资源有限的嵌入式系统中很常见。实施小心谨慎的内务细节很简单。使用'malloc()'分配大型池。根据需要将指针返回到池中。仔细追踪一切。当池被清空时使用'free()'。但有些陷阱。在教室外面,我会寻找一个合适的图书馆,以利用他们关于尖锐边缘在哪里的经验教训。 – RBerteig

+0

这个服务的目的是什么,它是针对大多数中/高级别程序设计的成语。 –

+1

您应该搜索“内存池” – EvilTeach

回答

3

内存分配的存储器中的整个数据结构的区域通常需要OS干预。用C语言编写的用户空间程序不能使用内存,除非它已经通过特定于平台的方法(通常是一些虚拟内存空间扩展,如mmap()或brk)提供给它。 C将malloc()定义为执行此操作的标准方法。你可以使用malloc()一个非常大的区域,并以任何你认为合适的方式将它雕刻出来。完成后,您只需要释放()一个区域。或者,您可以使用您的平台特定方法获取新内存,然后释放该内存。