Actually, you are correct, my oversight. p2 will point to the byte AFTER the terminating 0, which is also a zero because of the memset. Thus, it will be a null string. Without the memset, it might print a bunch of junk.