I'm trying to use a queue in my program, but it won't compile and I don't know why. The relevant part of the code is as follows.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#ifndef CUSTOMER
#define CUSTOMER
typedef int bool;
int r;
typedef struct{
    int arrival;
    int leaving;
} Customer;
static const int MAX_LENGTH = 100;
typedef struct{
    int head;
    int length;
    Customer customer[MAX_LENGTH];
} CustomerLine;
void initializeQueue(CustomerLine* queue)
{
    (*queue).head = 0;
    (*queue).length = 0;
}
bool hasNext(CustomerLine* queue)
{
    return (*queue).length > 0;
}
bool isFull(CustomerLine* queue)
{
    return (*queue).length == MAX_LENGTH;
}
bool enqueue(CustomerLine* queue, Customer* customer)
{
    if(isFull(queue))
        return 0;
    int index = ((*queue).head + (*queue).length) % MAX_LENGTH;
    (*queue).customer[index] = *customer;
    (*queue).length++;
    return 1;
}
Customer* dequeue(CustomerLine* queue)
{
    if(!hasNext(queue))
        return 0;
    Customer* result = &(*queue).customer[(*queue).head];
    (*queue).length--;
    (*queue).head = ((*queue).head + 1) % MAX_LENGTH;
    return result;
}
The error says:
variably modified 'customer' at file scope
 
     
     
     
    