typedef struct _name name;
struct _name { char name[256]; };
// ...
name Name;
char *buf = (char*)malloc( 256*sizeof(char) );
// ...
// if I do not want to write strcpy (Name.name,buf);
// and write: list_name_insert (&List,0,&Name);
// if just write:
list_name_insert (&List,0 /* index */,(name*)buf /* pointer to elem */);
// Will it be correct?
// ...
Run Code Online (Sandbox Code Playgroud)
在函数list_name_insert标准C中逐字段elem复制执行.换句话说,是相同的srtuct { char[]; },并char*在ANSI C?
这两个问题的答案归结为一个是否定的.
阿struct与一个部件具有一个struct类型; 它与单个成员的类型不同.
此外,数组和指针不是一回事.数组可以像在中一样衰减到指针
char buf[256];
char *p = buf;
Run Code Online (Sandbox Code Playgroud)
但不是相反.