Yes, I agree that this would work, too. However, I don't like it from a readability POV. The current code makes it quite obvious, that the string is correctly \0-terminated. Using a "partial" initializer list would have the same result, but you would need to know the implication of that syntax.

http://stackoverflow.com/questions/10828294/c-and-c-partial-initialization-of-automatic-structure