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

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));

慕森卡
浏览 265回答 3
3回答

慕妹3242003

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

长风秋雁

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

慕仙森

分配一个指向结构体指针的空间,其实改成QNode*也可以就是一个别名
打开App,查看更多内容
随时随地看视频慕课网APP