2 a82530 a82530 于 2016.03.29 21:02 提问

这个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;
}

2个回答

lx624909677
lx624909677   Ds   Rxr 2016.03.29 23:12

一个是LinkQueue类型,一个是QueuePtr类型,两个类型直接转换肯定不行啊

a82530
a82530 我仔细看了一下并不是你说的那个错误 错在了struct Qnode next; 这一行 应该QNode N没有大写
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.03.30 11:31

c语言指针的强制转换
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!