Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中管理结构队列的最佳方法是什么?_C_Memory Management_Queue - Fatal编程技术网

在C中管理结构队列的最佳方法是什么?

在C中管理结构队列的最佳方法是什么?,c,memory-management,queue,C,Memory Management,Queue,我有一系列需要保留的结构(音频数据),但由于内存限制,我只能保留有限的数量。我认为最好的方法是排队。如果我这样做是基于我对大学课程的模糊记忆,我会创建一个带有指针的链表。我会将新项目推到队列中,然后将旧项目弹出并释放内存 是否有一个C库,我应该用来管理这个队列,这样我就不必重新发明轮子了?< /P> < P>有一个很好的和有文档的C++中实现的数据结构集合,请看一下。标准库中有std::list。听起来您所描述的是一个缓存,而不是队列检查此线程:我对队列的使用提出疑问。如果您的队列包含三个项目怎

我有一系列需要保留的结构(音频数据),但由于内存限制,我只能保留有限的数量。我认为最好的方法是排队。如果我这样做是基于我对大学课程的模糊记忆,我会创建一个带有指针的链表。我会将新项目推到队列中,然后将旧项目弹出并释放内存


是否有一个C库,我应该用来管理这个队列,这样我就不必重新发明轮子了?< /P> < P>有一个很好的和有文档的C++中实现的数据结构集合,请看一下。标准库中有std::list。

听起来您所描述的是一个
缓存,而不是
队列

检查此线程:我对队列的使用提出疑问。如果您的队列包含三个项目怎么办?您加载声音A、B和C。现在您再使用A三次。A是最常用的,也是最近使用的。但现在加载声音D。这会将A从队列中推出。这就是你想要的行为吗?(或者我不理解这个问题?@Marvo:如果您的替换策略是先进先出/后进先出,那么链表就可以了。这是先进先出队列。我将填补它与第一套音频样本,因为它需要更多的音频,因为它播放的音频,我将删除已通过的音频,并添加更多。