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

C語言中多維數(shù)組的內(nèi)存分配和釋放(malloc與free)的方法

 更新時間:2013年05月14日 14:59:43   作者:  
寫代碼的時候會碰到多維數(shù)組的內(nèi)存分配和釋放問題,在分配和釋放過程中很容易出現(xiàn)錯誤。下面貼上一些示例代碼,以供參考。

如果要給二維數(shù)組(m*n)分配空間,代碼可以寫成下面:

復(fù)制代碼 代碼如下:

char **a, i;

// 先分配m個指針單元,注意是指針單元

// 所以每個單元的大小是sizeof(char *)

a = (char **) malloc(m * sizeof(char * ));

// 再分配n個字符單元,

// 上面的m個指針單元指向這n個字符單元首地址

for(i = 0; i < m; i++)

a[i] = (char * )malloc(n * sizeof(char ));

釋放應(yīng)該是:

復(fù)制代碼 代碼如下:

int i;

for(i=0;i<m;i++)

    free((void *)a[i]);

free((void *)a);

如果為三維數(shù)組(m*n*p)分配空間呢,應(yīng)該是:

復(fù)制代碼 代碼如下:

char ***a, i, j;

a = (char ***) malloc(m * sizeof(char ** ));

for(i = 0; i < m; ++i)

    a[i] = (char **) malloc(n * sizeof(char * ));

for(i = 0; i < m; ++i)

for(j = 0; j < n; ++j)

    a[i][j] = (char * )malloc(p * sizeof(char ));

釋放代碼為逆過程,具體代碼為:

復(fù)制代碼 代碼如下:

int i,j,;

for(i = 0; i < m; ++i)

for(j = 0; j < n; ++j)

        free((void *)a[i][j]);  

for(i = 0; i < m; ++i)

    free((void *)a[i]);

free((void *)a);


三維以上的多維數(shù)組的分配和釋放,原理與上面的一樣。

相關(guān)文章

  • C++多線程中的鎖和條件變量使用教程

    C++多線程中的鎖和條件變量使用教程

    這篇文章主要介紹了C++多線程中的鎖和條件變量使用,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • C++11利用原子操作實現(xiàn)自旋鎖

    C++11利用原子操作實現(xiàn)自旋鎖

    C++自旋鎖是一種低層次的同步原語,用于保護共享資源的訪問,這篇文章主要為大家介紹了如何利用原子操作實現(xiàn)自旋鎖,感興趣的小伙伴可以了解下
    2023-09-09
  • C++設(shè)計模式之備忘錄模式

    C++設(shè)計模式之備忘錄模式

    這篇文章主要介紹了C++設(shè)計模式之備忘錄模式,本文講解了什么是備忘錄模式、備忘錄模式的UML類圖、備忘錄模式的使用場合等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • 利用QT設(shè)計秒表功能

    利用QT設(shè)計秒表功能

    這篇文章主要為大家詳細介紹了利用QT設(shè)計秒表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 一篇文章詳解Qt中如何訪問數(shù)據(jù)庫

    一篇文章詳解Qt中如何訪問數(shù)據(jù)庫

    Qt是一個廣泛使用的跨平臺應(yīng)用程序框架,它提供了許多功能,包括數(shù)據(jù)庫訪問,這篇文章主要給大家介紹了關(guān)于Qt中如何訪問數(shù)據(jù)庫的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • C語言入門篇--四大常量(字面,const修飾,宏,枚舉)及標識符

    C語言入門篇--四大常量(字面,const修飾,宏,枚舉)及標識符

    本篇文章是c語言基礎(chǔ)篇,主要講述一下常量,常量即不可被直接修改的量(const修飾的常變量可間接修改,后續(xù)文章會繼續(xù)說明)請大家持續(xù)關(guān)注腳本之家
    2021-08-08
  • VSCode保存代碼自動格式化無效的解決方法

    VSCode保存代碼自動格式化無效的解決方法

    最近一直使用vscode,VSCode中各種配置后,自動保存格式化仍然無效,本文就來介紹一下解決方法,感興趣的可以了解一下
    2023-08-08
  • C++中發(fā)聲函數(shù)Beep用法

    C++中發(fā)聲函數(shù)Beep用法

    本文給大家分享的是Beep函數(shù)的用法以及會使揚聲器發(fā)出簡單的聲音的示例,有需要的小伙伴可以參考下
    2017-05-05
  • 基于Matlab制作偽3D第一視角迷宮小游戲

    基于Matlab制作偽3D第一視角迷宮小游戲

    這篇文章主要為大家詳細介紹了如何利用Matlab語言制作偽3D第一視角迷宮小游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-07-07
  • C++使用OpenCV實現(xiàn)證件照藍底換成白底功能(或其他顏色如紅色)詳解

    C++使用OpenCV實現(xiàn)證件照藍底換成白底功能(或其他顏色如紅色)詳解

    這篇文章主要介紹了C++使用OpenCV實現(xiàn)證件照藍底換成白底功能(或其他顏色如紅色),結(jié)合實例形式詳細分析了OpenCV顏色轉(zhuǎn)換相關(guān)操作原理與實現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12

最新評論

巴彦县| 吴旗县| 桦南县| 西盟| 曲阜市| 曲阳县| 清丰县| 明水县| 清流县| 榆林市| 宜章县| 敦煌市| 嘉义县| 仁布县| 馆陶县| 望谟县| 合山市| 多伦县| 玉田县| 正宁县| 汉寿县| 永年县| 新昌县| 社会| 石嘴山市| 南部县| 宁河县| 南乐县| 揭西县| 佛冈县| 齐河县| 深圳市| 当阳市| 广州市| 泰安市| 惠来县| 民勤县| 阿巴嘎旗| 平南县| 遂溪县| 犍为县|