| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:请教大家一个关于malloc的问题,谢谢
取消只看楼主 加入收藏
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
结帖率:50%
收藏
 问题点数:0 回复次数:1 
请教大家一个关于malloc的问题,谢谢
大家好,我的问题如下:
int **c=(int **)malloc(sizeof(int *)*81);
c[0]=(int *)malloc(sizeof(int)*9);

首先我声明并初始了一个int **c,然后,我只把c[0]初始化了,剩余c[1]~c[80]都没有初始

就是说c[0]指向了一个含有9个整形元素的一维数组,但是c[1]由于没有初始化,所以无法预计它指向什么。

我想知道初始化的和没有初始化的有什么区别?

sizeof(c[0])和sizeof(c[1])用整型输出得到一样的值,是4,这个我明白,因为是整形指针。

那么,可以用sizeof函数来区别c[0]and c[1]么?

谢谢大家
搜索更多相关主题的帖子: malloc 
2009-11-23 06:13
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
收藏
得分:0 
回2楼朋友:
int **c=(int **)malloc(sizeof(int *)*81);
for(i=0;i<81;i++)
c[i]=(int *)malloc(sizeof(int)*9);

我这么做,是不是将c[0]~c[80]这81个指针初始化了?

其实,我的问题是,首先,声明一个int **c,使其指向一个指针数组(含有81个指针,但还没有初始化),然后,我要遍历一个9*9数组,如果遇到的元素等于零,如果第5个元素非零,那么我就做c[4]=(int *)malloc(sizeof(int)*9);如果遇到的元素非零,我就不想分配给对应c[i]空间,为了节约内存。请问该如何实现呢?

最后那个问题是,比如我对c[4]这个指针做了c[4]=(int *)malloc(sizeof(int)*9);,然后对c[5]什么都没做,那么c[4]和c[5]可以用sizeof来区别?因为sizeof(c[4])和sizeof(c[5])的值都是4啊。

不知道我说清楚没,也请其他看到的朋友帮忙解答下,非常感谢。

2009-11-23 17:42
快速回复:请教大家一个关于malloc的问题,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045014 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved