Just to clarify, there is a difference between zero and a null byte. Page 249, has a comment line that says,
// Put a zero in the fifth byte
*(start + 4) = '\0';
Whilst the code assigns the null byte as required to terminate the string, this is not the same as a value of zero.