Итак, у меня есть эта структура, используемая для реализации циклического буфера другой структуры (plane
)
typedef struct queue
{
struct plane *q;
int size, capacity, front, rear;
}queue;
После этого я объявляю структуру
queue *q;
и позже, чтобы инициализировать буфер, я использую этот метод
int queue_init(int size){
q = (queue*) malloc(sizeof(queue));
q->q=malloc(sizeof(struct plane) * size);
q->size = 0;
q->capacity = size;
q->front = 0;
q->rear = 0;
return 0;
}
Предполагается, что именно она инициализирует все переменные, которые мне нужны, чтобы использовать буфер и сам буфер с q->q=malloc(sizeof(struct plane) * size);
.
Проблема в том, что размер буфера всегда равен 8 байтам, где он должен быть, как говорится, в size
раз больше plane
, что на самом деле равно 16.
Дело в том, как я должен инициализировать переменные, чтобы я мог получить буфер нужного размера. Я не могу изменить возвращаемое значение или параметры функции как ограничения.
Спасибо заранее!