国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 太康县| 涞源县| 金秀| 隆回县| 水富县| 尚义县| 海淀区| 白朗县| 德令哈市| 喜德县| 桦甸市| 大丰市| 冀州市| 高阳县| 靖西县| 秦皇岛市| 长武县| 郁南县| 平陆县| 阜新| 普陀区| 双峰县| 大关县| 上犹县| 汤原县| 阳东县| 青田县| 澄城县| 柳州市| 千阳县| 钟山县| 和林格尔县| 襄汾县| 定日县| 民勤县| 达拉特旗| 大化| 潍坊市| 衡水市| 满城县| 扬中市|