• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 淺談malloc與 kmalloc、cmalloc、realloc、new 的區(qū)別

    淺談malloc與 kmalloc、cmalloc、realloc、new 的區(qū)別

    作者: 時(shí)間:2012-07-23 來(lái)源:網(wǎng)絡(luò) 收藏

    相關(guān)函數(shù)原型:

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

    1. Malloc

    作 用: Malloc用于動(dòng)態(tài)申請(qǐng)存儲(chǔ)空間,它不是關(guān)鍵字,而是一個(gè)申請(qǐng)內(nèi)存的函數(shù)

    用 法:

    Malloc 返回一塊內(nèi)存地址的指針,否則會(huì)返回空指針null,這里要注意的是,當(dāng)內(nèi)存不再使用的時(shí)候,用free()函數(shù)進(jìn)行對(duì)內(nèi)存的釋放。

    2.calloc

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

    例 子:

    3.

    作 用:重新分配內(nèi)存空間。

    例 子:

    4.總結(jié):

    : 動(dòng)態(tài)分配size字節(jié)空間,返回它的指針。(此函數(shù)不能初始化內(nèi)存空間)

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

    :將指針指向的內(nèi)存空間擴(kuò)展成n個(gè),把它放在最后解釋因?yàn)榕疾唤ㄗh使用,確實(shí)要用也要考慮多種情況。

    free:釋放上述兩函數(shù)分配的空間;

    1 、 建立的是一個(gè)對(duì)象, 分配的是一塊內(nèi)存。

    2、malloc申請(qǐng)的是heap區(qū)的內(nèi)存空間,返回的是指針。 建立的對(duì)象你可以把它當(dāng)成一個(gè)普通的對(duì)象,用成員函數(shù)訪問(wèn),不要直接訪問(wèn)它的地址空間。(注意用delete釋放空間)。

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

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

    5、free掉的內(nèi)存是該指針指向的一段內(nèi)存空間,里面應(yīng)該是空的。而delete掉的內(nèi)存是里面確實(shí)存有數(shù)據(jù)或者對(duì)象的。

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

    c++相關(guān)文章:c++教程




    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 哈密市| 兴城市| 贵定县| 青神县| 靖宇县| 永清县| 耒阳市| 耒阳市| 县级市| 于都县| 衡东县| 赫章县| 屏东县| 瓮安县| 菏泽市| 安义县| 怀柔区| 丹棱县| 德化县| 通渭县| 山东省| 洛南县| 霍邱县| 历史| 鄂托克旗| 宝应县| 镶黄旗| 邵武市| 根河市| 华安县| 延吉市| 涪陵区| 县级市| 贵阳市| 高唐县| 岳阳市| 积石山| 京山县| 象州县| 隆子县| 林西县|