• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            隨筆 - 25, 文章 - 0, 評論 - 6, 引用 - 0
            數(shù)據(jù)加載中……

            C語言 malloc 工作機(jī)制

            void *malloc (size_t stSize);
            該函數(shù)在內(nèi)存的動態(tài)存儲區(qū)中分配 stSize 連續(xù)空間,返回值是一個指向所分配的連續(xù)存儲域的起始地址的指針。

            void free(void *firstbyte);
            如果給定一個由先前的 malloc 返回的指針,那么該函數(shù)會將分配的空間歸還給進(jìn)程的“空閑空間”。

            malloc 工作機(jī)制:
            malloc函數(shù)的實質(zhì)體現(xiàn)在,它有一個將可用的內(nèi)存塊連接為一個長長的列表的所謂空閑鏈表。調(diào)用malloc函數(shù)時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內(nèi)存塊。然后,將該內(nèi)存塊一分為二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的字節(jié))。接下來,將分配給用戶的那塊內(nèi)存?zhèn)鹘o用戶,并將剩下的那塊(如果有的話)返回到連接表上。調(diào)用free函數(shù)時,它將用戶釋放的內(nèi)存塊連接到空閑鏈上。到最后,空閑鏈會被切成很多的小內(nèi)存片段,如果這時用戶申請一個大的內(nèi)存片段,那么空閑鏈上可能沒有可以滿足用戶要求的片段了。于是,malloc函數(shù)請求延時,并開始在空閑鏈上翻箱倒柜地檢查各內(nèi)存片段,對它們進(jìn)行整理,將相鄰的小空閑塊合并成較大的內(nèi)存塊。

            參考:http://www.cnblogs.com/xkfz007/articles/2729027.html

            posted on 2013-03-19 17:08 chenjt3533 閱讀(351) 評論(1)  編輯 收藏 引用 所屬分類: C/C++

            評論

            # re: C語言 malloc 工作機(jī)制  回復(fù)  更多評論   

            學(xué)習(xí)了
            2013-03-29 11:15 | 曦花
            久久精品18| 国产午夜久久影院| 久久中文字幕精品| 伊人热热久久原色播放www | 99久久精品免费看国产免费| 日本免费久久久久久久网站| 久久久99精品成人片中文字幕| 精品国产乱码久久久久软件| 狠色狠色狠狠色综合久久| 国产免费久久精品丫丫| 日韩精品久久久久久久电影蜜臀| 久久香蕉国产线看观看99| 亚洲欧洲精品成人久久奇米网| 无码国产69精品久久久久网站| 久久AⅤ人妻少妇嫩草影院| 久久婷婷五月综合97色| 伊人情人综合成人久久网小说| 精品久久人妻av中文字幕| 久久久久亚洲av成人网人人软件 | 亚洲中文字幕久久精品无码APP | 亚洲va久久久噜噜噜久久男同 | 久久久久人妻一区二区三区 | 色婷婷久久综合中文久久蜜桃av| 国产亚洲成人久久| 久久精品成人免费看| 国产情侣久久久久aⅴ免费| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久99精品国产麻豆婷婷| 久久久久久免费一区二区三区| 午夜天堂精品久久久久| 久久这里的只有是精品23| 亚洲精品国精品久久99热| 精品久久综合1区2区3区激情| 久久久青草青青亚洲国产免观| 国产精品久久久久影院嫩草| 国产精品一区二区久久国产| 久久水蜜桃亚洲av无码精品麻豆| 影音先锋女人AV鲁色资源网久久| 狠狠色丁香婷婷久久综合| 国内精品久久国产| 亚洲伊人久久大香线蕉综合图片|