设为首页 加入收藏

TOP

C语言 malloc 工作机制
2013-04-24 12:24:24 来源: 作者: 【 】 浏览:463
Tags:语言   malloc  工作 机制

  void *malloc (size_t stSize);

  该函数在内存的动态存储区中分配 stSize 连续空间,返回值是一个指向所分配的连续存储域的起始地址的指针。

  void free(void *firstbyte);

  如果给定一个由先前的 malloc 返回的指针,那么该函数会将分配的空间归还给进程的“空闲空间”。

  malloc 工作机制:

  malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。于是,malloc函数请求延时,并开始在空闲链上翻箱倒柜地检查各内存片段,对它们进行整理,将相邻的小空闲块合并成较大的内存块。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇用C函数获取文件的长度 下一篇C语言编译全过程剖析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: