现在的位置: 首页 > 综合 > 正文

内存管理-简单的分配程序

2013年06月26日 ⁄ 综合 ⁄ 共 357字 ⁄ 字号 评论关闭

分配程序的全局变量

分配程序的初始化函数

sbrk()函数,用于动态增加内存空间.

char *sbrk(int incr)  incr为增加的字节数.

内存控制块结构

分配程序的释放函数

分配程序的分配函数

指针间的图示效果如下:

mem_alloc_ptr为malloc()函数返回的可用区间指针.

思考点:

1).内存分配的底层编程主要技巧是强制类型的转换,以及一些指针间操作,进行编程实现时,需要画清相应示意图.

2).该方法中,使用4字节来标识内存是否可用,有点浪费.

3).该方法中,内存释放时,没有内存合并,将会产生许多内存碎片.

4).该方法中,内存分配时,在最坏的情况下,需要遍历所有的内存块,效率低下.

参考资料:

内存管理 http://www.ibm.com/developerworks/cn/linux/l-memory/

抱歉!评论已关闭.