bla*_*oth 1 c queue struct pointers
typedef struct queue {
int q[max];
int qhead;
int qrear;
} queue;
void init_queue(queue *QUEUE)
{
QUEUE.qhead = 0;
QUEUE.qrear = -1;
}
void enqueue(queue *QUEUE,int data)
{
QUEUE.qrear++;
QUEUE.q[QUEUE.qrear] = data;
}
int process_queue(queue *QUEUE)
{
if(QUEUE.qhead > QUEUE.qrear)
return -1;
else
return QUEUE.q[QUEUE.qhead++];
}
Run Code Online (Sandbox Code Playgroud)
我正在使用数组实现队列只是为了保持简单.用上面的代码搞错了?
首先,.
运算符用于访问结构的成员.您需要->
访问指向结构的指针的成员:
void init_queue(queue *QUEUE)
{
QUEUE->qhead = 0;
QUEUE->qrear = -1;
}
Run Code Online (Sandbox Code Playgroud)
就像一个tid位,a->b
相当于(*a).b
- 也就是说,首先取消引用指针a
,然后访问该结构的成员.