最近在我的导师关于链表的讲座中,他这样声明它们:
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/