免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 77h2_eleven
打印 上一主题 下一主题

[malloc指针的指针]这个代码有问题么? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-07-15 18:55 |只看该作者

回复 #8 sinoman 的帖子

能正确运行?

论坛徽章:
0
12 [报告]
发表于 2008-07-15 19:12 |只看该作者
很明显会崩溃

论坛徽章:
0
13 [报告]
发表于 2008-07-15 19:27 |只看该作者
如果sizeof(t_int)==sizeof(t_int*)的话上面的做法是可以的
不过还有一级指针没有申请空间

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
14 [报告]
发表于 2008-07-15 22:52 |只看该作者
原帖由 gawk 于 2008-7-15 19:27 发表
如果sizeof(t_int)==sizeof(t_int*)的话上面的做法是可以的
不过还有一级指针没有申请空间



应该是这样的。那对于一个二级指针,一般是怎样申请空间的?

论坛徽章:
0
15 [报告]
发表于 2008-07-15 23:00 |只看该作者
原帖由 Godbach 于 2008-7-15 22:52 发表



应该是这样的。那对于一个二级指针,一般是怎样申请空间的?


一般是先为一级指针申请空间,再对每个一级指针进行操作。
不过我现在看到的很多都是已经有了一个一级指针的数组,然后用一个二级指针来访问这个一级指针数组。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
16 [报告]
发表于 2008-07-15 23:05 |只看该作者
原帖由 scutan 于 2008-7-15 23:00 发表


一般是先为一级指针申请空间,再对每个一级指针进行操作。
不过我现在看到的很多都是已经有了一个一级指针的数组,然后用一个二级指针来访问这个一级指针数组。


明白了。多谢。 兄弟还不休息啊。偶先睡了。

论坛徽章:
0
17 [报告]
发表于 2008-07-15 23:09 |只看该作者

回复 #16 Godbach 的帖子

泡了碗面来吃。 晚安

论坛徽章:
0
18 [报告]
发表于 2008-07-16 10:05 |只看该作者
原帖由 mik 于 2008-7-15 18:55 发表
能正确运行?

测试了,bus error。昨天我粗心了,谢了!

论坛徽章:
0
19 [报告]
发表于 2008-07-16 12:41 |只看该作者
恩,明白了,多谢大家。

论坛徽章:
0
20 [报告]
发表于 2008-07-16 13:01 |只看该作者
原帖由 Godbach 于 2008-7-15 22:52 发表



应该是这样的。那对于一个二级指针,一般是怎样申请空间的?

呵呵,我一般这样做

  1. typedef struct
  2. {
  3.         int x;
  4. } t_int;

  5. int main(void)
  6. {
  7.         int i = 10;
  8.         t_int **t = (t_int **)malloc(sizeof(t_int*) * 10);
  9.         while (i--)
  10.         {
  11.                t[i]=malloc(sizeof(t_int)*1);
  12.                if(t[i]==NULL)
  13.                  {
  14.                     printf("xxxxxxxxxxxxxx---->\n");
  15.                     return 0;
  16.                  }
  17.                 t[i]->x = i;
  18.         }        
  19. }
复制代码

[ 本帖最后由 gawk 于 2008-7-16 13:05 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP