[英]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
类型的变量,可以为其成员head
和tail
分配内存。 你不分配什么内存head
和tail
的成员next
的指向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.