У меня есть функция, используемая для создания нового GQueue
GQueue* newGQueue(int n_ele, int ele_size)
{
GQueue* q = (GQueue*) malloc(sizeof(GQueue));
if(!q) return NULL;
q->ptr = malloc(n_ele * ele_size);
if(!(q->ptr))
{
free(q);
return NULL;
}
q->in = q->out = q->count = 0;
q->size = n_ele; q->ele_size = ele_size;
return q;
}
Я использую это так:
volatile GQueue * kbdQueue = newGQueue(10, 1);
Однако в этой строке возникает следующая ошибка компиляции:
Error: initializer element not constant
Почему это происходит? 10 и 1, очевидно, являются константами, которые не должны беспокоить malloc
и т. Д. В пре c99
коде C.
Только флаг -Wall
.
Спасибо