void * 问题
「已注销」 2010-03-02 10:01:30 按照书上写了一个queue,但是存放的数不一定,有int也有struct。
所以想到了用void *实现。
现在QElemType用define 定义成void,报错。如果改成int就可以运行。
Status DeQueue(LinkQueue *Q, QElemType *e)
{
if(Q->front == Q->rear)
return ERROR_Queue;
QueuePtr p = Q->front->next;
*e = *(p->data);
free(p->data);
Q->front->next = p->next;
if(Q->rear == p)
Q->rear = Q->front;
free(p);
return OK;
}
可是报错。
queue.c: In function 'DeQueue':
queue.c:50: warning: dereferencing 'void *' pointer
queue.c:50: warning: dereferencing 'void *' pointer
queue.c:50: error: invalid use of void expression
请问如何修改