国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 16:14:49
字體:
供稿:網(wǎng)友

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

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

char **a, i;

// 先分配m個(gè)指針單元,注意是指針單元

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

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

// 再分配n個(gè)字符單元,

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

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ù)組的分配和釋放,原理與上面的一樣。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 沈丘县| 从江县| 两当县| 成安县| 朝阳区| 萨嘎县| 全州县| 长沙市| 西平县| 天峻县| 江源县| 福清市| 青岛市| 米易县| 遂宁市| 泸定县| 松潘县| 信丰县| 禹城市| 北川| 金川县| 辽源市| 西藏| 平阴县| 苍山县| 铜梁县| 海伦市| 德州市| 澄迈县| 东城区| 潞西市| 疏附县| 兰坪| 广德县| 大同县| 信阳市| 五寨县| 福海县| 宝坻区| 汝南县| 鹤庆县|