新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談malloc與 kmalloc、cmalloc、realloc、new 的區別

        淺談malloc與 kmalloc、cmalloc、realloc、new 的區別

        作者: 時間:2012-07-23 來源:網絡 收藏

        相關函數原型:

        本文引用地址:http://www.104case.com/article/148740.htm

        1. Malloc

        作 用: Malloc用于動態申請存儲空間,它不是關鍵字,而是一個申請內存的函數

        用 法:

        Malloc 返回一塊內存地址的指針,否則會返回空指針null,這里要注意的是,當內存不再使用的時候,用free()函數進行對內存的釋放。

        2.calloc

        作 用:calloc()函數有兩個參數,分別為元素的數目和每個元素的大小,這兩個參數的乘積就是要分配的內存空間的大小。

        例 子:

        3.

        作 用:重新分配內存空間。

        例 子:

        4.總結:

        : 動態分配size字節空間,返回它的指針。(此函數不能初始化內存空間)

        calloc:動態分配n個連續的size字節空間,返回第一個指針。它有兩個參數,分別為參數的數目,和每個參數的大小,那么這兩個參數的乘積就是這個分配空間的大小。(此函數可以初始化內存空間)

        :將指針指向的內存空間擴展成n個,把它放在最后解釋因為偶不建議使用,確實要用也要考慮多種情況。

        free:釋放上述兩函數分配的空間;

        1 、 建立的是一個對象, 分配的是一塊內存。

        2、malloc申請的是heap區的內存空間,返回的是指針。 建立的對象你可以把它當成一個普通的對象,用成員函數訪問,不要直接訪問它的地址空間。(注意用delete釋放空間)。

        3、malloc/free是C/C++中的方法(函數),new/delete是C++中的操作符。

        4、使用free之前要判斷,使其free的指針是!NULL的,使用delete則無須判斷。

        5、free掉的內存是該指針指向的一段內存空間,里面應該是空的。而delete掉的內存是里面確實存有數據或者對象的。

        最后要注意的是malloc和free 、new和delete成對使用,以免不必要的麻煩。

        c++相關文章:c++教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乾安县| 柯坪县| 永城市| 九龙城区| 吉林市| 皮山县| 夏邑县| 丰镇市| 遂川县| 吉木萨尔县| 章丘市| 礼泉县| 托克逊县| 康平县| 奉新县| 余干县| 福安市| 张家界市| 梓潼县| 宣威市| 南充市| 澄迈县| 诏安县| 孟津县| 山阴县| 栾城县| 江孜县| 义乌市| 天峨县| 含山县| 武夷山市| 合作市| 陆川县| 洞头县| 东丽区| 婺源县| 滦平县| 泰顺县| 田东县| 宁武县| 靖安县|