| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1486 人关注过本帖
标题:一个复杂的结构数组(动态生成),怎样赋值呢?
只看楼主 加入收藏
legend2003cn
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
 问题点数:0 回复次数:2 
一个复杂的结构数组(动态生成),怎样赋值呢?

有一个结构定义如下:

struct feanode
{
char feaname[30]; /* 每个特性的名称 */
int type; /* 每个特性的取值类型,0为字符型,1为整型,2为浮点型 */
union range /* 每个特性的取值范围 */
{
char *c_range[10]; /* 字符型 */
int i_range[10]; /* 整型 */
double d_range[10]; /* 浮点型 */
}range;
int rangenum; /* 每个特性取值的数量 */
int indegree; /* 每个特性的入度 */
struct arcbox *parent , *child; /* 分别指向该顶点第一条入弧和出弧 */
}feanode;

在初始化函数中,要动态生成一个该结构的数组,共有5个该结构的元素。这5个结构元素的取值如下:

"duration",1,{0,1},2,0,NULL,NULL

"protocol_type",0,{"icmp","tcp","udp"},3,0,NULL,NULL

"serror_rate",2,{0.0,0.3,0.9},3,0,NULL,NULL

"srv_serror_rate",2,{0.0,0.5,0.8},3,0,NULL,NULL

"urgent",1,{5,8},2,0,NULL,NULL

初始化函数如下:

void init()
{
struct feanode *fealist;
fealist=(struct feanode *)malloc(5*sizeof(struct feanode));
assert(fealist!=NULL);

下面该怎样赋值呢?

}

搜索更多相关主题的帖子: 赋值 动态 结构 int 特性 
2007-09-22 00:01
luohao123456
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-9-21
收藏
得分:0 

结构体中有两种赋植方式:
第一种是在定义时用大括号把各项一次性赋植,各元素用逗号分开
fealist={"duration",1,{0,1},2,0,NULL,NULL

"protocol_type",0,{"icmp","tcp","udp"},3,0,NULL,NULL

"serror_rate",2,{0.0,0.3,0.9},3,0,NULL,NULL

"srv_serror_rate",2,{0.0,0.5,0.8},3,0,NULL,NULL

"urgent",1,{5,8},2,0,NULL,NULL

}
第二种是进行各项分别赋植:
fealist->feaname=duration
fealist->type=
fealist->rangenum=
fealist->indegree=
fealist->parent=
fealist->child=


2007-09-22 08:47
legend2003cn
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
得分:0 
多谢了!
2007-09-23 19:37
快速回复:一个复杂的结构数组(动态生成),怎样赋值呢?
数据加载中...
 
   



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

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