| |
| ▲ | lioeters 5 hours ago | parent [-] | | I thought that was a typo or the forum software removed something, but no - it's a pointer to an empty string literal. If I understand how that works, this creates a null byte (in the read-only memory section of the compiled output?) and points to it. Before this line it checks if p is NULL. I wonder what is the advantage of doing this? Maybe to make sure that p is an actual pointer, so later code can just make that assumption. | | |
| ▲ | lokar 5 hours ago | parent [-] | | Yeah, it simplifies later code, and is safer in the face of future changes. Or put another way, it tightens the API/contract of that chunk of code to always return a valid string. | | |
| ▲ | lioeters 4 hours ago | parent [-] | | That makes sense, with that "guard" at the top, the rest of the function can return the pointer anywhere. And I imagine the compiler will ensure the empty string literal is created only once. Good to know! |
|
|
|