免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1873 | 回复: 7
打印 上一主题 下一主题

c中怎样动态分配二维数组? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-18 11:28 |只看该作者 |倒序浏览
用malloc()?怎么用?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2006-04-18 11:32 |只看该作者

  1. int**a,i;
  2. a = (int**)malloc(sizeof(int*) * MAX_X);
  3. for(i =0;i<MAX_X,i++)
  4.        a[i] =(int*)malloc(sizeof(int)*MAX_Y);
复制代码

连续:

  1. int**a,i;
  2. a = (int**)malloc(sizeof(int*) * MAX_X);
  3. a[0] = =(int*)malloc(sizeof(int) * MAX_X * MAX_Y);
  4. for(i =1;i<MAX_X,i++)
  5.        a[i] =a[i-1] + MAX_Y;
复制代码

论坛徽章:
0
3 [报告]
发表于 2006-04-18 19:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2006-04-18 20:49 |只看该作者
原帖由 cjaizss 于 2006-4-18 11:32 发表

  1. int**a,i;
  2. a = (int**)malloc(sizeof(int*) * MAX_X);
  3. for(i =0;i<MAX_X,i++)
  4.        a[i] =(int*)malloc(sizeof(int)*MAX_Y);
复制代码

连续:
[code]
int**a,i;
a = (int**)malloc(sizeof(in ...



先建立各数组头部,再为每个分配空间,
上面各元素为等长的,当然也可以为变长的,更常用一些

论坛徽章:
0
5 [报告]
发表于 2006-04-20 13:31 |只看该作者
free()时的疑惑:
int* p;
p=(int*)malloc(sizeof(int)*3);
free(p);
能释放p[1],p[2]占的空间么?

论坛徽章:
0
6 [报告]
发表于 2006-04-20 14:17 |只看该作者
我以前发过类似的贴子,这里再贴下代码

     52 char ** alloc_table(int m, int n)
     53 {
     54     int i;
     55     char ** table, * t;
     56
     57     if (!m || !n) return NULL;
     58
     59     table = (char **)malloc(m * sizeof(table) + m * n);
     60     t = (char *)(table + m);
     61
     62     for (i = 0; i < m; i++)
     63         table = t + n * i;
     64
     65     return table;
     66 }

[ 本帖最后由 bierdaci 于 2006-4-20 19:28 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-04-23 10:06 |只看该作者
原帖由 aux888 于 2006-4-20 13:31 发表
free()时的疑惑:
int* p;
p=(int*)malloc(sizeof(int)*3);
free(p);
能释放p[1],p[2]占的空间么?



maybe you can check the implement of malloc() and free() in std lib.

论坛徽章:
0
8 [报告]
发表于 2006-04-23 10:24 |只看该作者
楼上的方法都差不多!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP