鱼C论坛

 找回密码
 立即注册
查看: 2831|回复: 3

关于动态内存分布的问题

[复制链接]
发表于 2012-6-5 16:46:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 螃蟹009 于 2012-6-5 17:05 编辑

刚刚接触到动态内存分布,就是malloc的问题;
只不过老师讲的,没有听懂!请大家帮忙在解答一下malloc是如何工作的:
比如说
  1. int * p = (int *)malloc(4);
复制代码
他是如何在内存中进行工作的?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-5 18:56:50 | 显示全部楼层
malloc在自由存储区分配空间,然后用位于堆栈中的p指向这块内存
我个人的理解是这样的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-6 09:27:45 | 显示全部楼层
当有malloc申请存储空间时,malloc将扫描空闲列表,直到找到一个足够大的块为止,将此块从列表中移走,返回该空闲块的空闲空间的首地址给用户。另一种方法是寻找一个符合条件的最小块,并将此块从列表中移走,返回地址给用户。如果申请的块比较大,找不到一个足够大的块则将向系统申请一个新的空闲块,并将其加入空闲列表,将空闲块的首地址返回给用户。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-8 23:29:28 | 显示全部楼层
只能意会,不好言传!嘻嘻!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 16:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表