为了账号安全,请及时绑定邮箱和手机立即绑定

QueuePtr加在这里做什么?这句话什么意思?

QueuePtr加在这里做什么?这句话什么意思?

慕森卡 2022-06-11 11:07:24
typedef struct QNode{ElemType data;struct QNode *next;} QNode,*QueuePtr;typedef struct{QueuePtr front;QueuePtr rear;}LinkQueue;status Init Queue(LinkQueue &Q){Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front)return Error;Q.front->next=NULL;return OK;}Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

指针是需要指向一个内存空间的。
malloc是动态申请内存空间的函数,返回的是void*类型的指针。
而Q.front和Q.rear是(QueuePtr)类型的,所以要进行类型转换,就有了
(QueuePtr)的修饰;
跟int a = (int)2.14;是一样的道理。

查看完整回答
反对 回复 2022-06-14
?
长风秋雁

TA贡献1757条经验 获得超7个赞

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
是在申请动态内存空间。QueuePtr加在这里是表示申请的QueuePtr类型。

查看完整回答
反对 回复 2022-06-14
?
慕仙森

TA贡献1827条经验 获得超7个赞

分配一个指向结构体指针的空间,其实改成QNode*也可以就是一个别名

查看完整回答
反对 回复 2022-06-14
  • 3 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信