> It doesn't matter, actually.
Note my comment above: "there is a subtlety: the quoted C standard says that "pointer arguments on such a call shall still have valid values", which is not true of NULL (nil). But few implementations check the pointer when the len is 0, so people get away with it." That is, according to the C standard, merely loading a pointer that contains NULL is undefined. But it's not an issue in practice.