Question: is argv always null terminated?
Answer: Yes. The non-null pointers in the argv array point to C strings, which are by definition null terminated. ... Further, the array element at argv[argc] is a null pointer, so the array itself is also, in a sense, "null terminated."