Обсуждение:Кольцевой буфер
Перейти к навигации
Перейти к поиску
Эта статья содержит текст, переведённый из статьи Circular_buffer из раздела Википедии на английском языке. Список авторов находится на странице истории правок оригинальной статьи. Информация о включении текстов из других источников и их авторах может быть размещена на странице обсуждения оригинальной статьи. |
Возможно ошибка в примере.[править код]
Обнаружил возможные неточности в примере:
int RingBuffer_trywrite(RingBuffer* rb, char c) {
...
rb->writeptr += tmp; // Здесь...
...
}
int RingBuffer_tryread(RingBuffer* rb, char* c) {
...
rb->readptr += tmp; // и здесь.
...
}
Нарушение логики. Сначала вычисляем новое значение указателя для записи/чтения
char* tmp = rb->writeptr + CHAR_SIZE;
а потом записываем сумму старого и нового значений…
rb->writeptr += tmp;
Может нужно так?
rb->writeptr = tmp;
— Эта реплика добавлена с IP 193.34.160.185 (о) 08:30, 25 сентября 2021 (UTC)