哪位C高手帮忙解决一下,

来源:百度知道 编辑:UC知道 时间:2024/05/13 23:27:31
typedef struct nod *pointer
struct nod
{
datatype data;
pointer next;
};
typedef pointer lklist;
lklist initiate_lklist()
{
t=malloc(size);
t->next=NULL;
return(t);
}
请问一下,这个malloc是怎么样实现的?先谢了!!

简单的说: 利用brk指针来扩展和收缩heap

复杂的说:涉及到操作系统的内存管理、如何分配块、对齐块、移动块,并发请求、甚至还有锁定块、如何标记块、最大化吞吐率、收集碎片的策略、垃圾收集的策略等等,具体的实现要看具体操作系统及实现者考虑的角度及采取的整体策略!

http://www.diybl.com/course/3_program/c++/cppsl/20071128/87996.html
这里有篇文章较为详细的描述了它的一种简单实现,有兴趣看看吧~~

malloc是C程序库函数……

是C语言函数库提供的函数`