繁体   English   中英

在结构中初始化结构?

[英]Initializing a struct within a struct?

所以我有以下两种结构

typedef struct clienttable {
    vartable head;
    vartable tail;
} clienttable;

typedef struct vartable {
    int tableid;
    int randominfo;
    struct vartable *next;
} vartable;

我想像这样初始化他们。

clienttable *maintable;
maintable = (clienttable *) malloc (sizeof( clienttable));
maintable->head = {.tableid = 10, .randominfo=NULL, .next=NULL};

但是当我去编译的时候,我不断得到

expected expression before { token 

错误。 我也只尝试了{10,NULL} ,但无济于事。

我究竟做错了什么?

另外,我需要malloc同时clientable客户表中,所有的表,或将只是malloc荷兰国际集团的一个工作?

我究竟做错了什么?

这个

maintable->head = ...

不是初始化,而是任务。

这个

... = {.tableid = 10, .randominfo=NULL, .next=NULL};

但是只能用于初始化。

因此,将后者更改为此

... = (vartable) {.tableid = 10, .randominfo=0, .next=NULL};

使用复合文字的赋值。


...我需要同时分配可客户端表和客户机表中的所有表,还是仅分配一个工作表?

不太确定“ 所有表 ”指的是什么,但是通过分配一个clienttable类型的变量,可以为其成员headtail分配内存。 分配什么内存headtail的成员next的指向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM