>> Он вообще-то о строках, как я понял.
> Я так понял что он предлагал хранить длину строки как variable length integer?Грубо говоря, я предложу такую структуру:
struct String {
len_of_len; //длина поля длины в байтах
len_of_data;//поле длины строки в символах
data;//ссылка на контейнер данных перечислимого типа [1...len_of_data]
}
Плюсы такой структуры:
+ независимость структуры от базовых типов short, int, long, ограничивающих длину строки и отсутствие избыточности служебной информации для коротких строк;
+ элементы данных строки счётны от 1 до len_of_data без нужны вычислять конец строки и идиотского "нулевого элемента", принятого в C для элементов массива (по-мне, так символы в строке — это не массив!);
+ контейнер данных может поддерживать любой доступ к элементам строки (хранить разреженные строки, например), но перечислимость [1...len_of_data] элементов должен обеспечивать — это даёт нам гибкость в абстрагировании от конкретной реализации контейнера.