On the contrary, I think "Strings are just character arrays are just pointers" is the solution, not the problem. As with non-character arrays, you must always pair the pointer with a length. (I don't like the idea of prefixing the length because it prevents su stringing).
The problem is the null termination, which is not general to arrays (though it is sometimes used with arrays of pointers).