1
 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 逐字段元素复制中执行。换句话说,srtuct { char[]; }char*ANSI C 中是否相同?

4

1 回答 1

5

这两个问题合而为一的答案是“不”和“不”。

一个成员的Astruct有一个struct类型;它的类型与其单个成员不同。

此外,数组和指针不是一回事。数组可以衰减为指针,如

char buf[256];
char *p = buf;

但不是相反。

于 2013-01-30T17:15:05.020 回答