Should the C language represent strings as an address + length tuple or just as the address with a magic character (NUL) marking the end?
If it had done anything else, the situation would probably be worse
NUL-terminated strings aren't optimal, but they were the logical choice back then, and are better than some of the alternatives. The BIG
mistake is how a lot of the libc (and especially
the string functions!) were designed.