Как представить буфер как связанный список в C - PullRequest
0 голосов
/ 01 июня 2019

У меня есть заранее выделенный буфер (массив символов), в который записываются строки, это выглядит так: "Это \ 0buffer \ 0contains \ 0strings \ 00000 ..."

Я хочу иметь возможность удалить последнюю строку, поэтому мне пришла в голову идея представить каждую строку в буфере как узел связанного списка с указателями на его начало и конец, так что я бы просто нашел последний узел и заполните область, в которой он находится, нулями.

struct node 
{ 
  char *str_start;
  char *str_end;
  struct node *next; 
};

Похоже, это очень распространенная проблема, однако я нигде не смог найти такие реализации.

Вопрос в том, есть ли какая-то структура данных для моего варианта использования, которую я пропустил, или есть лучшее решение для этого?

Примечание: это должно использоваться в модуле ядра, так что, возможно, оно уже реализовано в ядре

1 Ответ

0 голосов
/ 01 июня 2019

Вы можете использовать двумерный массив (учитывая, что буфер предварительно выделен, и вы знаете максимальный размер для каждой строки).

Это облегчит соблюдение размеров строк, и, следовательно, ваш код станет более безопасным.

...