q=(NODE*)malloc(sizeof(NODE))

puzzle1986 2008-09-14 10:08:24
q=(NODE*)malloc(sizeof(NODE))

其中NODE为typedef定义的结构体类型名,q为指向NODE类型的指针。
程序能看懂,但一直有个问题都没搞懂过。那个前面的NODE*到底是干什么用的?
是强制转换吗?那个*号到底起什么作用啊?直接NODE不行吗?
...全文
733 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
puzzle1986 2008-09-14
  • 打赏
  • 举报
回复
浮躁了,没有他细看MOLLAC的文档,看了就不会出问题了。收工结帐。。
bitxinhai 2008-09-14
  • 打赏
  • 举报
回复 1
因为malloc函数返回的是空指针类型,
所以必须转换为你想要的类型!!!
*表示转换的是NODE指针类型,
而不是NODE类型!!!
使用c++ new就可以避免类型转换!!
lunarfan 2008-09-14
  • 打赏
  • 举报
回复
malloc返回void类型指针强制转换为指向结构体的指针
wangdeqie 2008-09-14
  • 打赏
  • 举报
回复
baihacker 2008-09-14
  • 打赏
  • 举报
回复
q是一个指针类型。
malloc的返回类型是void*
所以需要转一下。

malloc分配sizeof(NODE);的内存,把指向这片内存的指针返回。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧