最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言動(dòng)態(tài)內(nèi)存分配的詳解

 更新時(shí)間:2017年07月23日 09:56:55   投稿:lqh  
這篇文章主要介紹了C語(yǔ)言動(dòng)態(tài)內(nèi)存分配的詳解的相關(guān)資料,這里提供了實(shí)現(xiàn)方法整理和出現(xiàn)錯(cuò)誤的解決辦法,需要的朋友可以參考下

C語(yǔ)言動(dòng)態(tài)內(nèi)存分配的詳解

1.為什么使用動(dòng)態(tài)內(nèi)存分配

數(shù)組在使用的時(shí)候可能造成內(nèi)存浪費(fèi),使用動(dòng)態(tài)內(nèi)存分配可以解決這個(gè)問(wèn)題。

2. malloc和free

C函數(shù)庫(kù)提供了兩個(gè)函數(shù),malloc和free,分別用于執(zhí)行動(dòng)態(tài)內(nèi)存分配和釋放。

(1)void *malloc(size_t size);

malloc的參數(shù)就是需要分配的內(nèi)存字節(jié)數(shù)。malloc分配一塊連續(xù)的內(nèi)存。如果操作系統(tǒng)無(wú)法向malloc提供更多的內(nèi)存,malloc就返回一個(gè)NULL指針。

(2)void free(void *pointer);

free的參數(shù)要么是NULL,要么是一個(gè)先前從malloc、calloc或realloc返回的值。

3. calloc和realloc

(1)void *calloc(size_t num_elements,size_t element_size);

calloc也用于內(nèi)存分配。malloc和calloc之間的主要區(qū)別是后者在返回指向內(nèi)存的指針之前把它初始化為0。

(2)realloc(void *ptr,size_t new_size);

realloc函數(shù)用于修改一個(gè)原先已經(jīng)分配的內(nèi)存塊的大小。如果它用于擴(kuò)大一個(gè)內(nèi)存,那么這塊內(nèi)存原先的內(nèi)容依然保留,新增加的內(nèi)存添加到原先內(nèi)存塊的后面。如果它用于縮小一個(gè)內(nèi)存塊,該內(nèi)存塊尾部的部分內(nèi)存被拿掉,剩余部分內(nèi)存的原先內(nèi)容依然保留。

4. 使用動(dòng)態(tài)分配的內(nèi)存

(1)使用示例

int *pi;

pi = malloc(25 * sizeof(int));

if(pi == NULL){

printf("out of memery\n");

exit(1);

}

(2)使用間接訪問(wèn)

int *pi2,i;

pi2 = pi;

for(i = 0;i < 25;i += 1)

*pi2++ = 0;

也可以使用下標(biāo)。

int i;

for(i = 0;i < 25;i += 1)

*pi[i] = 0;

5. 常見(jiàn)的動(dòng)態(tài)內(nèi)存錯(cuò)誤

常見(jiàn)的錯(cuò)誤有:對(duì)NULL指針進(jìn)行解引用操作、對(duì)分配的內(nèi)存進(jìn)行操作時(shí)越過(guò)邊界、釋放并非內(nèi)存分配的內(nèi)存、試圖釋放一塊動(dòng)態(tài)分配的內(nèi)存的一部分以及一塊動(dòng)態(tài)內(nèi)存釋放之后被繼續(xù)使用。

以上就是對(duì)C語(yǔ)言中動(dòng)態(tài)內(nèi)存分配的資料講解,如有疑問(wèn)請(qǐng)大家留言或者到本站社區(qū)討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲設(shè)計(jì)

    C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++中map容器的具體使用

    C++中map容器的具體使用

    本文主要介紹了C++中map容器的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C++實(shí)現(xiàn)LeetCode(904.水果裝入果籃)

    C++實(shí)現(xiàn)LeetCode(904.水果裝入果籃)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(904.水果裝入果籃),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++存儲(chǔ)持續(xù)性生命周期原理解析

    C++存儲(chǔ)持續(xù)性生命周期原理解析

    這篇文章主要為大家介紹了C++存儲(chǔ)持續(xù)性生命周期原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 如何使用C語(yǔ)言實(shí)現(xiàn)細(xì)菌的繁殖與擴(kuò)散

    如何使用C語(yǔ)言實(shí)現(xiàn)細(xì)菌的繁殖與擴(kuò)散

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)細(xì)菌的繁殖與擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi)

    Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi)

    這篇文章主要為大家詳細(xì)介紹了Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • C語(yǔ)言中自定義類(lèi)型詳解

    C語(yǔ)言中自定義類(lèi)型詳解

    大家好,本篇文章主要講的是C語(yǔ)言中自定義類(lèi)型詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-01-01
  • C++ ReSharper2021激活碼永久有效

    C++ ReSharper2021激活碼永久有效

    ReSharperC++是為c/c++開(kāi)發(fā)者打造的一款實(shí)用Visual Studio擴(kuò)展插件,這款插件旨在提升開(kāi)發(fā)者的效率,今天給大家分享這款軟件的激活方法,需要C++ ReSharper2021激活碼的朋友參考下本文
    2021-06-06
  • C++生成格式化的標(biāo)準(zhǔn)字符串實(shí)例代碼

    C++生成格式化的標(biāo)準(zhǔn)字符串實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于C++生成格式化的標(biāo)準(zhǔn)字符串的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • C++中使用mutable關(guān)鍵字的場(chǎng)景分析

    C++中使用mutable關(guān)鍵字的場(chǎng)景分析

    C++中的mutable關(guān)鍵字用于修飾類(lèi)的成員變量,使其在const成員函數(shù)中可以被修改,它主要用于緩存、線(xiàn)程同步和調(diào)試等場(chǎng)景,以支持對(duì)象的邏輯常量性,在使用mutable時(shí),應(yīng)確保其修改不會(huì)破壞對(duì)象的外部表現(xiàn)狀態(tài),本文介紹C++中使用mutable關(guān)鍵字的場(chǎng)景分析,感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論

泾源县| 略阳县| 德惠市| 弥渡县| 淅川县| 南乐县| 达日县| 张家界市| 澄城县| 正定县| 织金县| 阜康市| 旌德县| 文山县| 荥阳市| 鹿邑县| 黄冈市| 新龙县| 海晏县| 定边县| 思茅市| 舟曲县| 宜昌市| 宁德市| 夏津县| 什邡市| 天柱县| 招远市| 横峰县| 龙口市| 新建县| 延津县| 永善县| 乐安县| 徐闻县| 桂平市| 襄汾县| 河曲县| 武定县| 五大连池市| 吕梁市|