Comment by ricardo81
2 years ago
Perhaps, but also realistic to accept that you're using code where other people do/have and that the same logic would apply to them.
2 years ago
Perhaps, but also realistic to accept that you're using code where other people do/have and that the same logic would apply to them.
You only have to care about it at boundaries though, for the most part. Like, when calling a C API. That's easy to handle. Even C++'s std::string can do that, as the c_str method always returns a null-terminated string. That inherently kills the need for things like strcat.
The return from c_str cannot be used everywhere you would normally use a null terminated string, because the return is const.
For example, you couldn't pass it to strtok, or any other function that needs to even temporarily modify the string.
strtok is an abomination. The only reason it needs to modify the input string in the first place is to support zero-terminated output strings without having to make copies.
While this is true, passing a string to a C function that is manipulating the string would defeat the point of not using C string manipulation.
5 replies →