问题描述
- 这个c语言指针为什么不能转换啊,求解释。
-
#include
#include
typedef int QElemType;
typedef int Status;
typedef struct QNode {
QElemType data;
struct Qnode next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
Status InitQueue(LinkQueue *Q)
{
Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
if(!Q->front)exit(0);
Q->front=NULL;
return 1;
}
Status EnQueue(LinkQueue *Q,QElemType e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
Q->rear->next=p;/这个为什么报错?--------------------*/
Q->rear=p;
return 1;
}
解决方案
一个是LinkQueue类型,一个是QueuePtr类型,两个类型直接转换肯定不行啊
解决方案二:
c语言指针的强制转换
时间: 2024-10-31 18:55:36