如何初始化结构体数组(内嵌结构体)

幽兰星梦 2017-03-12 09:12:22
请教,如何初始化结构数组(该结构包含另外一个结构):
如果只初始化部分数据,如何操作:

例如:
typedef struct _bag{
int playerId;
int count;
int max;
Prop props[8];
}Bag;

typedef struct _player{
int id;
char name[50];
char pass[50] ;
double gold;
Bag bag; //嵌套上一个结构体
double sysee;
}Player;

Player playerArray[] = {
{1,"张三","123456",50000,0,.bag.max=8}, //用.bag(嵌套的另外一个结构体)报错
{2,"李四","123456",15000,0,{Bag bag.max=8}},//这样也报错

{3,"王五","123456",25000,0},
{4,"星河","123456",50000,0}
}
...全文
3618 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyi2015 2018-08-29
  • 打赏
  • 举报
回复
typedef struct _bag{
int playerId;
int count;
int max;
Prop props[8];
}Bag;

typedef struct _player{
int id;
char name[50];
char pass[50] ;
double gold;
Bag bag; //嵌套上一个结构体
double sysee;
}Player;

Player playerArray[] = {
[0] = {
.id = 1,
.name = "张三",
.pass = "123456",
.gold = 50000,
.bag = {
.max = 8
},
.sysee = 1
},
{2,"李四","123456",15000,{0,0,8},2},
{3,"王五","123456",25000,{.max=8},3},
{4,"星河","123456",50000,0,0,8,}
};
自信男孩 2017-03-12
  • 打赏
  • 举报
回复
typedef struct _bag{
int playerId;
int count;
int max;
//Prop props[8];
}Bag;

typedef struct _player{
    int id;
    char name[50];
    char pass[50];	
    double gold;
    Bag bag;
    double sysee;
}Player;

Player playerArray[] = {
    {1, "张三", "123456", 50000, {0, 0, .max = 8}, 0},
    {2, "李四", "123456", 15000, {0, 0, .max = 8}, 0},
    {3, "王五", "123456", 25000, {0}, 0},
    {4, "星河", "123456", 50000, 0, 0}
};
试试这种形式
twintiger 2017-03-12
  • 打赏
  • 举报
回复
上面写错了,应该是 {2,"李四","123456",15000,0,.bag={.max=8,}},//这样也应该可以的。 你不妨试试
twintiger 2017-03-12
  • 打赏
  • 举报
回复
二楼是对的,结构体初始化和数组初始化是用{},如果嵌套还是用{ ,,,{}}....多层,不想初始化的变量可以空着。还有一种方法是用小数点: {2,"李四","123456",15000,0,{Bag bag.max=8}},//这样也报错 改成 {2,"李四","123456",15000,0,{.max=8,}},//这样也报错
幻夢之葉 2017-03-12
  • 打赏
  • 举报
回复
{2,"李四","123456",15000,0,{5, 3, 8, "HAHA"}} 这样子呢?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧