title: Extending argv to hold more values
body: <p>This is mostly out of curiosity.</p>
  
  <p>In the ISO C specification the following is said:</p>
  
  <blockquote>
    <p>The parameters argc and argv and the strings pointed to by the argv array shall
    be modifiable by the program, and retain their last-stored values between program
    startup and program termination.</p>
  </blockquote>
  
  <p><a href="http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1425.pdf" rel="nofollow">http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1425.pdf</a> section 5.1.2.2.1 Program startup</p>
  
  <p>Still, I have seen recommendations online that you shouldn't reallocate argv to extend it, but rather copy it.</p>
  
  <p>Is there a specific reason to not extend argv that doesn't affect other char** or is this by convention? </p>
  
  <p>I don't know if there is any real need for extending argv with additional values, but the question is whether argv is special from the POV of the program.</p>