c - C中的struct由1个字段组成,是同一类型的字段吗?

标签 c types struct

 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?
 // ...

在标准 C 函数 list_name_insert 中逐字段复制执行。 也就是说,是不是一样的srtuct { char[]; 和 ANSI C 中的 char*

最佳答案

将这两个问题合二为一的答案是否定的。

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

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

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

反之则不然。

关于c - C中的struct由1个字段组成,是同一类型的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14609763/

相关文章:

mysql - 我应该选择什么数据类型?

c# - 类成员与结构成员上的 volatile 写入的奇怪行为

c - C 中的嵌套 for 循环模式

c - FIR滤波器在C编程中的实现

haskell - 在 GHC.TypeLits 中 someNatVal 有什么用处(我们不能用 natVal 完成)?

php - 为什么类型转换不是 PHP 函数参数中的一个选项

c - 如何使用指针初始化结构?

c - malloc 中的 Sigsegv

c - 将 C 数组拆分为 n 个相等的部分

c - 做指针运算会产生除法成本吗