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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C99 calloc、malloc和realloc区别

發布時間:2024/10/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C99 calloc、malloc和realloc区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2018-01-26 創建人:Ruo_Xiao 參考文檔:C99標準 郵箱:xclsoftware@163.com

一、共同點

  • 均來自頭文件:stdlib.h
  • 分配的內存都是連續的。
  • 返回值為void *,C/C++規定,void* 類型可以通過類型轉換強制轉換為任何其它類型的指針。
  • 若成功,則返回內存對齊的指針;若失敗,則返回NULL。
  • 均有free釋放。
  • 二、calloc

    1、原型:

    void *calloc(size_t nmemb, size_t size);

    2、功能描述
    calloc函數申請一個元素個數為nmemb的內存塊,每一個元素大小為size,每個元素自動初始化為0。
    3、栗子:

    char *pStr = NULL;/*分配內存空間*/pStr = (char*)calloc(10,sizeof(char));

    結果如下:

    查看內存:

    大家可以發現,該地址后面10個字節均是0,而第11、12、13和14個字節均是未定義,故calloc連續分配了10個字節的內存并自動清零。

    三、malloc

    1、全稱:memory allocation,中文叫動態內存分配。
    2、原型:

    void *malloc(size_t size);

    3、功能描述
    malloc 申請指定size大小的內存塊,其值不會初始化。
    4、栗子:

    int *pi = NULL;/*分配內存空間*/pi = (int*)malloc(10*sizeof(int));

    結果:

    查看內存:

    大家可以發現,該地址后面40個字節均是cd,而第41、42、43個字節均是未定義,故malloc連續分配了40個字節的內存但沒有初始化。

    四、realloc

    1、原型

    void *realloc(void *ptr, size_t size);

    2、功能描述
    (1)釋放原來的內存空間,若原地址后面有足夠的內存,則在同一地址下申請size大小的新內存塊。若沒有,則在新的內存地址下申請內存。
    (2)若size小于原來的內存大小,則原數據末尾部分丟失。若size大于原來的內存大小,則原數據完整拷貝到新的內存塊,多出來的內存塊不初始化。
    栗子:

    int *pi1 = NULL;int *pi2 = NULL;pi1 = (int *)malloc(3*sizeof(int));pi1[0] = 1;pi1[1] = 2;pi1[2] = 3;pi2 = (int *)realloc(pi1,4*sizeof(int));

    結果:

    查看內存:

    修改代碼如下:

    pi2 = (int *)realloc(pi1,2*sizeof(int));

    結果:

    查看內存:

    (3)若ptr為NULL,size非零,則realloc會申請一個新的內存塊,大小為size,等同于malloc。
    栗子:

    int *pi2 = NULL;pi2 = (int *)realloc(NULL,2*sizeof(int));

    結果:

    查看內存:

    (4)若ptr有值,但size為0時,則釋放內存,返回NULL,等同于free。
    栗子:

    int *pi1 = NULL;int *pi2 = NULL;pi1 = (int *)malloc(3*sizeof(int));pi1[0] = 1;pi1[1] = 2;pi1[2] = 3;pi2 = (int *)realloc(pi1,NULL);

    結果:

    五、free

    1、頭文件:stdlib.h
    2、原型:

    void free(void *ptr);

    3、功能描述:
    釋放malloc(或calloc、realloc)函數給指針變量分配的內存空間。
    4、使用后該指針變量一定要重新指向NULL,防止野指針出現,有效 規避誤操作。
    5、若形參為NULL,無操作。

    總結

    以上是生活随笔為你收集整理的C99 calloc、malloc和realloc区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 欧美精品国产动漫 | 欧美高清videos高潮hd | 欧美偷拍第一页 | 大地资源影视在线播放观看高清视频 | 天天干天天摸 | 婷婷色婷婷开心五月四房播播 | 国产欧美日韩综合精品一区二区 | 日本在线视频一区 | 日韩精品视频在线看 | 国产在线视频自拍 | 日韩成人一区二区三区 | 日韩免费a | 日本大胆人体视频 | 天天干天天操天天爱 | 国产精品成熟老女人 | 久久一二区 | 日本免费一区二区三区视频 | 日本黄色免费在线观看 | 51成人| 奶妈的诱惑| 在线播放国产精品 | 朝桐光一区二区 | 一级片小视频 | 久久精品国产亚洲AV成人婷婷 | 国精品无码一区二区三区 | 亚洲 小说区 图片区 都市 | 色综合影视 | 成人看片免费 | 欧美激情一区二区三区免费观看 | 国产美女黄色 | 国产妇女馒头高清泬20p多 | 无码国产精品一区二区高潮 | 九九精品在线观看视频 | 亚洲成人aaa | 免看一级a毛片一片成人不卡 | 国产又粗又猛又色又 | 超碰97av | 日本成人在线一区 | 国产成人精品一区二区三区免费 | 婷婷在线播放 | 少妇人妻邻居 | 天天干夜夜夜夜 | 亚洲经典自拍 | 日韩毛片无码永久免费看 | 福利视频一二区 | 午夜欧美日韩 | jjzz日本视频 | 泰剧19禁啪啪无遮挡 | 亚洲AV成人无码精电影在线 | 在线观看羞羞漫画 | ,一级淫片a看免费 | 美女网站免费视频 | 狠狠操2019 | 色婷婷91 | 日韩欧美国产高清 | 一区二区三区免费视频观看 | 国产精品一区二区av白丝下载 | 爱爱视频在线免费观看 | 日韩欧美精品在线观看 | 99er久久| 91狠狠 | 成人免费一级片 | 超碰97在线资源 | av网站大全在线观看 | 欧美69囗交视频 | www.色日本| 精品一区二区三区久久 | 四虎福利视频 | 潘金莲一级淫片aaaaaa播放 | 国产精品高潮呻吟久久久久久 | 最近2019中文字幕大全第二页 | 成 年 人 黄 色 大 片大 全 | 在线国产中文字幕 | 欧美一级在线视频 | 久久久久久久一区二区 | 成人综合区一区 | 99福利在线| 综合色久| 亚洲国产毛片 | 成年人在线视频 | 国产成人精品亚洲线观看 | 精品在线91| 欧美少妇网 | 毛片导航 | 国产v亚洲v天堂无码久久久 | 女优色图 | 欧美一区二区三区在线免费观看 | 亚洲理论在线观看 | 性无码专区无码 | 内地级a艳片高清免费播放 91在线精品一区二区 | 国产成人无码aa精品一区 | 国产a线 | 99re在线观看 | 亚洲自拍色 | 国产在线最新 | 91视频美女| 日韩不卡在线观看 | 天天色棕合合合合合合合 | 欧美日韩高清 |