| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1300 人关注过本帖
标题:[求助]关于结构体指针数组的问题
只看楼主 加入收藏
奥丁
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-18
结帖率:100%
收藏
 问题点数:0 回复次数:7 
[求助]关于结构体指针数组的问题
数组里的存储的是结构体指针
我现在要为指针分配内存
我定义的结构体占16个字节
一般怎么分配?

str[i] = (STU *)malloc(81 * sizeof(STU));
这样是不是太浪费了?
还是直接一个大小就够了?str[i] = (STU *)malloc(sizeof(STU));

还是怎么分配比较合适?

还有为什么我把malloc里写0也能正常运行呢?
搜索更多相关主题的帖子: 结构体 指针 
2007-10-18 23:38
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
分配一个就可以了.
用malloc()来申请0个空间,就相当于没有申请到空间,
返回值为NULL

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-10-18 23:52
xhtang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-10-1
收藏
得分:0 

[QUOTE]
还有为什么我把malloc里写0也能正常运行呢?
[/QUOTE]
如果你不用它,它就不会有问题了

帮助别人是我的快乐! 别人帮我,我心存感激!
2007-10-18 23:53
奥丁
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-18
收藏
得分:0 

我运行了啊 而且也往里输入了数据 也可以啊 这个怎么回事啊?

还有我以前有个程序 str[i] = (char *)malloc(11 * sizeof(char));
是字符串指针数组 这个的意思是不是这个指针指向的空间里能存11个字节 也就是10个字符+\0呢

可我在控制台输入了超过10很多了字符怎么也可以呢?

2007-10-19 00:47
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
c语言对指针的越界没有严格的检查,所以即使超过了也可以赋值,但是这样可能会引起很严重的后果。

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 07:44
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
回复:(奥丁)[求助]关于结构体指针数组的问题

用CALLOC不是更好.


2007-10-19 10:22
奥丁
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-18
收藏
得分:0 
以下是引用cutboy在2007-10-19 10:22:23的发言:

用CALLOC不是更好.

为什么?

2007-10-19 13:29
奥丁
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-18
收藏
得分:0 
那这个写成str[i] = (STU *)malloc(sizeof(STU));
就足够了吧
如果可能再往结构里加成员再分配一个也可以吧str[i] = (STU *)malloc(2 * sizeof(STU));
2007-10-19 13:32
快速回复:[求助]关于结构体指针数组的问题
数据加载中...
 
   



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

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