Pádraig Brady wrote: > That looks wrong. > Should memcpy() be marked as nonnull as the length can be 0? That doesn't matter:
C99 7.21.1#2 "Where an argument declared as size_t n specifies the length of the array for a function, n can have the value zero on a call to that function. Unless explicitly stated otherwise in the description of a particular function in this subclause, pointer arguments on such a call shall still have valid values, as described in 7.1.4. On such a call, a function that locates a character finds no occurrence, a function that compares two character sequences returns zero, and a function that copies characters copies zero characters." > In any case we don't want to be asserting in such cases, > rather just doing: > > if (temp.text) > memcpy (...) >From what I could gather all paths seem to lead to a temp.text which is non null. That is why I preferred the assert(). Is this assumption incorrect? -- Best regards, Kovarththanan Rajaratnam