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?
// ...
在函数list_name_insert中,标准C逐场复制执行。
换句话说,它在ANSI C中是srtuct { char[]; }
和char*
吗?
答案 0 :(得分:5)
这两个问题的答案归结为一个是否定的。
一个成员struct
的成员类型为struct
;它与单个成员的类型不同。
此外,数组和指针不是一回事。数组可以像
一样衰减到指针char buf[256];
char *p = buf;
但不是相反。