4 ms·
As the top level comment was about knowing the length of a string: GTA Online's loading times were atrocious because of a null-terminated string.
by skitter 3y ago
As the top level comment was about knowing the length of a string: GTA Online's loading times were atrocious because of a null-terminated string.
- dezgeg 3y agoNot really, more that the implementation of sscanf() is stupid and calls strlen() even though implementing sscanf() that doesn't require that is perfectly possible.
- jstimpfle 3y agoInstead of putting up with people constantly complaining how C is bad because of zero-terminated strings, we should better educate folks that there is absolutely zero reason why one has to rely on a NUL byte in-band signal. And APIs like sscanf() shouldn't be used beyond their historic purposes and there are easier ways to program. C doesn't really "have" zero-terminated strings other than supporting them with string literals as well as having an atrocious "strings" library for historical reasons. C has storage and gives you the means to copy data around, that's it. (Although I fully agree that the GTA issue can be seen as a bug in the implementation of sscanf()).