zero-terminated says nothing about allocation, so there's that.
Re:Show HN
by lifthrasiir on Saturday December 03, 2022 @07:14PM
(#33849000)
You were talking about [space] efficiency for small strings, which is inherently related to the memory allocation scheme.
What? You can allocate zero-terminated strings in .rodata by typing "a string literal" in source code, for example. It's fair to say that there's no fragmentation or whatever and you don't have to think about deallocation either.
Other popular approaches to allocate strings dynamically would generally group strings of similar lifetime or by size, amortizing possible overheads over many strings.
If your favorite memory allocator requires a size field to support efficient deallocation, then by all means put that in the allocation record. But this is totally orthogonal to the format of a simple string representation.
[1] https://isocpp.org/files/papers/n3778.html