c - C中链表声明的区别

标签 c casting linked-list malloc

最近在我的导师关于链表的讲座中,他这样声明它们:

struct asd *head=(struct asd *)malloc(sizeof(struct asd));

我想知道上面的声明与此相比有什么区别:

struct asd *head=malloc(sizeof(struct asd));

因为我一直在为我创建的每个链表使用后者。顺便说一句,语言是 C。

最佳答案

基本上没有区别,问题是 malloc 返回一个 void * 然后可以在 C 中设置为任何其他指针类型,在 C++ 中它需要一个最初完成的显式类型转换,在 C 中不赞成对 malloc 的返回进行类型转换。

所以您的导师可能最初学习了 C++,然后学习了 C,这实际上现在很普遍。

关于c - C中链表声明的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418366/

相关文章:

objective-c - swift : "Cannot assign value of type ' 项目 !' to type ' 项目!”

c - 链表 : strange muddle of member element during output

c - 字符数组到链表 - 使用数组中的地址

mysql - 在同一调用中将列转换为不同类型

c - fread() 从二进制文件读取时出现意外行为

c - 为什么大小为 '0' 的 realloc 允许多次释放指针,但大小为 '0' 的 malloc 不允许?

objective-c - 如何在 Objective-C 中获取方法的函数名?

c++ - 如何仅在C/C++项目中处理宏而不进行编译?

以 5 为增量倒数

ios - 从 AnyObject 转换为 CGColor?没有错误或警告