c版数据结构有关问题

c版数据结构问题
现在看到队列,发现个问题,每次从队列尾插入数据,从队列头获取数据后,那原来申请的那片内存是重新分配同样大小的内存,还是把队列头之后的数据往钱移以为呢,或者是其他什么办法?

------解决方案--------------------
1, 定长环形队列
2, 头尾指针的链表队列
  

针对2, 结点自身内存可以回收到free数组里重用,但如果node内有指针指向的堆内存还是要释放掉的,这就不可避免的有内存重复开辟与释放,所以内存池应运而生,结点和结点内指向的堆内存均由内存池管理即可。