dco*_*ina 2 c struct memory-management initialization variable-assignment
所以我有以下两种结构
typedef struct clienttable {
vartable head;
vartable tail;
} clienttable;
typedef struct vartable {
int tableid;
int randominfo;
struct vartable *next;
} vartable;
Run Code Online (Sandbox Code Playgroud)
我想像这样初始化他们.
clienttable *maintable;
maintable = (clienttable *) malloc (sizeof( clienttable));
maintable->head = {.tableid = 10, .randominfo=NULL, .next=NULL};
Run Code Online (Sandbox Code Playgroud)
但是当我去编译时,我会继续得到一个
expected expression before { token
Run Code Online (Sandbox Code Playgroud)
错误.我也尝试过{10,NULL}无济于事.
我究竟做错了什么?
另外,我需要malloc同时clientable和所有的客户表中的表,或将只是malloc荷兰国际集团的一个工作?
我究竟做错了什么?
这个
maintable->head = ...
Run Code Online (Sandbox Code Playgroud)
不是初始化,而是作业.
这个
... = {.tableid = 10, .randominfo=NULL, .next=NULL};
Run Code Online (Sandbox Code Playgroud)
但是只能用于初始化.
所以将后者改为此
... = (vartable) {.tableid = 10, .randominfo=0, .next=NULL};
Run Code Online (Sandbox Code Playgroud)
使用复合文字的作业.
...我是否需要malloc客户端表中的clientable和所有表,或者只是mallocing一个工作?
真的不知道你是"指的是什么所有表 ",但分配clienttable-typed变量你分配为它的成员的内存head和tail.你不分配什么内存head和tail的成员next 都指向.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |