Are the elements of the argv array always contiguous in memory?

c, posix, unix

Solution

This is not guaranteed. Neither by C, neither by POSIX.

Problem

On Linux, the elements of the argv array always seem to occupy contiguous positions in memory, i.e. the first character of argv[n+1] immediately follows the terminating nul byte of argv[n], for n = 0...(argc-1). Is this guaranteed to be the case on all POSIX systems/all C implementations?

Original source