Помимо ошибки компиляции при использовании .
вместо ->
, у вас также есть потенциальное переполнение буфера в enqueue
;Вы переполните свой буфер после max
вызовов.У вас есть пара выбора в зависимости от того, что вы хотите.
1) Вы можете превратить это в круговую очередь:
void enqueue(queue *QUEUE,int data)
{
QUEUE->qrear = (QUEUE->qrear + 1) % max;
QUEUE->q[QUEUE->qrear] = data;
}
2) Вы можете прекратить добавление, как только вы нажмете max:
void enqueue(queue *QUEUE,int data)
{
if (QUEUE->qrear < (max - 1))
{
QUEUE->qrear++;
QUEUE->q[QUEUE->qrear] = data;
}
}