【发布时间】:2019-08-16 00:59:51
【问题描述】:
下面的代码我分析了很久,还是没有得到这个函数的一行,如下:
void ResizeQueue(struct DynArrayQueue* q) {
int size = q->capacity;
q->capactiy = q->capacity * 2;
q->array = realloc(q->array, q->capacity);
if (!q->array) {
printf("Memory error");
return;
}
// The doubt lines:
if (q->front > q->rear) {
for (int i = 0; i < q->front; i++) {
q->array[i + size] = q->array[i];
}
q->rear = q->rear + size;
}
}
我对上面这段代码的疑问是,在这个循环队列的动态数组实现中,在什么时候,前面变得比后面更大?
【问题讨论】:
标签: c arrays queue dynamic-arrays