我试图想办法将命令的历史记录保存在一个大小为 [10] 的数组中,并在保持其大小不变的同时,始终显示最后 10 个命令。是否有不涉及队列或列表的实现?也许是这样,给数组更多的空间,并填充命令,但打印不同的索引?我在 Windows 机器上使用 C。
问问题
38 次
你想要一个循环缓冲区。周围有很多实现。
只需将您的数组视为循环缓冲区并保持一个cur
指向最新条目的变量即可。
要添加条目:
cur = (cur + 1) % size;
要打印数组中的所有内容:
printf("%d\n", cur);
for (i = (cur + 1) % size; i != cur; i = (i + 1) % size)
printf("%d\n", i);