4 ms·
You're talking about naked char[]. You can just as easily make a struct{ int len; char* str; } in C, and combined with the "n" variants of string operations, wo
by joushou 10y ago
You're talking about naked char[]. You can just as easily make a struct{ int len; char* str; } in C, and combined with the "n" variants of string operations, would work just fine with common tools.
Again, C++ does not make anything safer, and its types can easily be replicated in any other language.
- kccqzy 10y agoI believe this is called pascal style strings and GCC has builtin support for it.
- pjmlp 10y agoBeing possible, doesn't mean the majority of C developers make use of it. The "n" variants are a joke in terms of security, even the C99 annex, that was demoted to optional in C11. I call them a joke, because tracking the pointer and length separately is hardly an improvement in terms of security. The only improvement that the "n" variants added is that the null character is always added to the end, instead of how strncpy does it, by only adding the character if there is enough space.