二维数组 malloc
来源:互联网 发布:蒙文翻译软件 编辑:程序博客网 时间:2024/06/04 19:06
如果要给二维数组(m*n)分配空间,代码可以写成下面:
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 ));
释放应该是:
int i;
for(i=0;i<m;i++)
free((void *)a[i]);
free((void *)a);
如果为三维数组(m*n*p)分配空间呢,应该是:
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 ));
释放代码为逆过程,具体代码为:
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);
三维以上的多维数组的分配和释放,原理与上面的一样。
另参考 http://blog.csdn.net/dualeak/article/details/4677132
- malloc二维数组
- malloc分配二维数组
- malloc二维数组
- malloc free 二维数组
- malloc 申请二维数组
- 二维数组 malloc
- malloc 实现二维数组
- 用malloc动态分配二维数组
- 用malloc动态分配二维数组
- malloc动态申请二维数组
- 用malloc动态分配二维数组
- 二维数组动态申请 malloc
- 用malloc开辟二维数组
- 用malloc分配动态二维数组
- malloc二维数组的2种方法
- malloc二维数组的2种方法
- malloc申请二维数组的方法
- new/malloc 分配二维数组存储空间
- bootstrap 模态框
- 主机监控部分
- Java.swing.JTable
- java socket 发送文件
- 循环-14. 最大公约数和最小公倍数(15)
- 二维数组 malloc
- linux下tomcat无法访问问题
- 深入OpenSessionInViewFilter内幕
- window下redis的安装和配置
- Mac 常用的终端命令
- 游戏开发学习笔记-6.输入控制
- Centos 7 安装lnmp 移动数据库文件目录,重启后无法访问Web服务,笔记
- 循环-15. 统计素数并求和(20)
- BeautifulSoup下载给定URL里的图片(二)