А по мне оптимальное решение было найдено, дла Форта (sPF). В строке хранится и длина, и оконечний нуль. Есть и еще интересное решение: хранить максимальную длину строки и реальную. Но более затратно по памяти.