china丶龙少 2018-12-19 11:33 采纳率: 0%
浏览 371

在.c文件中,为什么struct node * = void *会赋值成功?

在使用链表时,创建一个.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++在类型这方面的区别有些不是很理解,哪位大神能解释一下?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:26
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?