在使用链表时,创建一个.c文件,来执行
struct node *p = malloc(sizeof(struct node));
这个语句的时候,就不会报错。
而创建.cpp文件时,执行这条语句,就会报错说不能将void*赋给struct node*。
按理说malloc返回值是void*,的确不能直接给p赋值的,而应该强制转换为struct node*。如struct node *p = (struct node*)malloc(sizeof(struct node));
C和C++在类型这方面的区别有些不是很理解,哪位大神能解释一下?
在.c文件中,为什么struct node * = void *会赋值成功?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注不知道你这个问题是否已经解决, 如果还没有解决的话:- 建议你看下这篇博客👉 :[C++]试一试结构体struct node的构造函数
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^解决 无用评论 打赏 举报