日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

malloc申请得到的内存后,再free释放它的时候,操作系统会立即收回那块内存吗?

發布時間:2024/1/23 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 malloc申请得到的内存后,再free释放它的时候,操作系统会立即收回那块内存吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

stackoverflow上的回答:

In many malloc/free?implementations,?free?does?normally?not?return?the?memory?to?the?operating?system?(or?at?least?only?in?rare?cases).?The?reason?is,?that?you?will?get?gaps?in?your?heap?and?thus?it?can?happen,?that?you?just?finish?off?your?2?or?4?GB?of?virtual?memory?with?gaps.?This?should?be?avoided?of?course,?since?as?soon?as?the?virtual?memory?is?finished,?you?will?be?in?really?big?trouble.?The?other?reason?of?course?is,?that?the?OS?can?only?handle?memory?chunks?that?are?of?a?specific?size?and?alignment.?To?be?specific:?Normally?the?OS?can?only?handle?blocks?that?the?virtual?memory?manager?can?handle?(most?often?multiples?of?512?Bytes?eg.?4KB).

So?returning?40?Bytes?to?the?OS?will?just?not?work.?So?what?does?free?do?

Free?will?put?the?memory?block?in?its?own?free?block?list.?Normally?it?also?tries?to?meld?together?adjacent?blocks?in?the?address?space.?The?free?block?list?is?just?a?circular?list?of?memory?chunks?which?have?of?course?some?administrative?data?in?the?beginning.?This?is?also?the?reason,?why?managing?very?small?memory?elements?with?the?standard?malloc/free?is?not?efficient.?Every?memory?chunk?needs?additional?data?and?with?smaller?sizes?more?fragmentation?happens.

The?free-list?is?also?the?first?place?that?malloc?looks?at?when?a?new?chunk?of?memory?is?needed.?It?is?scanned?before?it?calls?for?new?memory?from?the?OS.?When?a?chunk?is?found?that?is?bigger?then?the?needed?memory,?it?is?just?divided?into?two?parts.?One?is?returned?to?caller,?the?other?is?put?back?into?the?free?list.

There?are?many?different?optimizations?to?this?standard?behaviour?(for?example?for?small?chunks?of?memory).?But?since?malloc?and?free?must?be?so?universal,?the?standard?behaviour?is?always?the?fallback?when?alternatives?are?not?usable.?There?are?also?optimizations?in?handling?the?free-list?--?for?example?storing?the?chunks?in?lists?sorted?by?sizes.?But?all?optimizations?also?have?their?own?limitations.

首先malloc/free()的操作取決于操作系統和編譯器的實現。一般來說當你調用malloc(),系統會從堆中給你分配一塊足夠大的空閑內存,并返回指向它的指針,并且標記它不再空閑。當調用free(),系統檢查這塊內存的大小,并把它加入到free列表中,而不是立即回收它的內存,因此操作系統只能處理特定大小且連續的內存塊:一般來說是512Bytes的倍數。Free內存塊鏈表的另一個作用是,當調用malloc()時,系統會首先從這個表中查找符合要求的內存塊,如果找不到適合大小的內存塊再向操作系統申請新的內存空間。

總結

以上是生活随笔為你收集整理的malloc申请得到的内存后,再free释放它的时候,操作系统会立即收回那块内存吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久久毛片大屁完整版 | 亚洲妇女av | 亚洲免费视频一区二区 | 最近国语视频在线观看免费播放 | 美国做爰xxxⅹ性视频 | www.黄色片 | 亚洲一区二区免费在线观看 | 黄色国产在线视频 | 热玖玖| 国产二级视频 | 91人人澡人人爽 | 成人午夜视频在线观看 | 国产一区二区小说 | 欧美精品人妻一区二区 | 少妇激情在线 | japanese国产在线观看 | 日啪| 国产黄色录像片 | 日韩性xxxx | 无码人妻丰满熟妇精品 | 欧美最顶级a∨艳星 | 懂色视频在线观看 | jzzijzzij亚洲成熟少妇18 欧美www在线观看 | www色亚洲| 久久一区二区三区四区 | 激情国产视频 | 成年人午夜免费视频 | 超碰夫妻 | 国产91精| 男女爽爽爽 | 久久久久亚洲av无码专区桃色 | 色婷婷久久 | 成年人免费视频网站 | 国产伦理在线 | 日日操日日射 | 一区二区av电影 | 国产ts变态重口人妖hd | 欧美日韩国产免费一区二区三区 | 最近中文字幕在线观看视频 | 99精品视频网站 | 青青青青青青草 | 日韩精品综合 | 色综合久久中文字幕无码 | 欧美特级毛片 | 自拍亚洲欧美 | 福利片一区二区 | 一区二区三区欧美日韩 | 麻豆传媒网址 | 国内精品一区二区 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 激情视频免费在线观看 | 久久久不卡 | 天堂网av中文字幕 | 午夜成人免费影院 | 亚洲欧美日韩精品久久 | 国产欧美视频在线观看 | 自拍一区在线 | 人妖ts福利视频一二三区 | 亚洲一区观看 | 狠狠躁日日躁夜夜躁av | 亚洲人在线播放 | 欧美偷拍视频 | 伦av综合一区 | 波多野结衣欲乱上班族 | 色哟哟无码精品一区二区三区 | caopor在线 | 欧美麻豆| 天堂中文字幕在线 | 老司机av福利 | 欧美浪妇xxxx高跟鞋交 | 亚洲天堂美女视频 | 中国黄色免费网站 | 久射网 | 十大污网站 | 大战熟女丰满人妻av | 欧美在线激情视频 | 亚洲码中文 | 99爱爱 | 亚洲不卡中文字幕 | 亚洲com | 久久av一区二区三区亚洲 | 真人真事免费毛片 | 手机在线看片 | 不卡在线一区二区 | 天天曰 | 国产亚洲精品久久久久丝瓜 | av不卡网| 久操精品在线 | 天天综合天天综合 | 9久久9毛片又大又硬又粗 | 午夜精品久久久久久久久久久 | 色婷婷97 | 99综合久久 | 欧美精品一区二区三区久久久竹菊 | 91最新在线| 免费看日韩 | 99久久视频 | 一区二区三区毛片 | 亚洲婷婷免费 |