所以我有以下两种结构
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};
使用复合文字的作业.
...我是否需要malloc客户端表中的clientable和所有表,或者只是mallocing一个工作?
真的不知道你是"指的是什么所有表 ",但分配clienttable
-typed变量你分配为它的成员的内存head
和tail
.你不分配什么内存head
和tail
的成员next
都指向.