作者MOONRAKER (㊣卡拉希尼卡撑可夫)
看板Programming
标题Re: [问题] 没有作业系统的动态记忆体管理
时间Sat Aug 16 00:01:31 2008
※ 引述《mingtai1 (绿豆嘉义人)》之铭言:
: 请问一下各位大大
: C里面, 印象中要用动态记忆体管理像是malloc这种功能,
: 是不是都要有OS支援才可以 ?
: 那如果在没有OS的环境下跑 (例如用ARM编译到某种电路板上跑的程式)
: 是不是这种功能就得要完全自己写了呢
: 那如果要自己写, 要怎麽得知目前记忆体的使用状况勒?
: 不知道这样问会不会太怪 @_@
把可用的记忆体视为一个大阵列,另外维护一个对照表
标示哪里正在使用中,哪些可以用
也就是自己维护一个memory pool
基本的想法是,有一个指标new,这个new随时指向可用的记忆体
如果记忆体满了,那麽new = NULL
而表里面每一项entry除了in_use以外,还要有一个nextfree指标
alloc记忆体的函数要可以寻找适当大小的连续区块
阵列可以替换为其他资料结构,如heap等,原则不变
--
BATCH 03 : 买张床 - 切达大侠 - 伐木人之歌 -
http://tinyurl.com/3zpyx5
[B4准备中]: 讴歌金钱(7/02) - 单车超人(7/23) -
http://tinyurl.com/66v6vq
[ 番外篇 ]: 包租婆也有过当罗莉的时候(7/17) -
http://tinyurl.com/6j4ale
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
■ 蒙帝派松正体中文计画 ■ Spam-a-lot and enjoy the pythonesque delight!
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ https://www.youtube.com/user/JamesBondXD▄▄
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.206.183
1F:推 mingtai1:感谢! 203.67.37.157 08/16 10:55