I see a lot of templates and complicated data structures for implementing a circular buffer.
How do I code a simple integer circular buffer for 5 numbers?
I'm thinking in C is the most straightforward?
Thanks.
I see a lot of templates and complicated data structures for implementing a circular buffer.
How do I code a simple integer circular buffer for 5 numbers?
I'm thinking in C is the most straightforward?
Thanks.
Have an array, buffer, of 5 integers. Have an index ind to the next element. When you add, do
buffer[ind] = value;
ind = (ind + 1) % 5;
If the size and data type of your buffer are fixed, a simple array is all you need:
int buffer[5];
Add to that a couple pointers:
int* start = &buffer[0];
int* end = &buffer[4]+1;
int* input = start;
int* output = start;
Take an array, arr, an index idx, and a counter, num.
To insert foo, say arr[idx++] = foo; idx %= buffer_len; num++;.
To read out an item into foo, say foo = arr[(idx-num)%buffer_len]; num--;.
Add boundary checks.