title: after execve, are memory in the previous process addr freed？
body: <p>In execve function, arguments are passed by a pointer array. If these pointers ponit to memory in the previous stack, can these memory still be accessed in a new process image. </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;unistd.h&gt;
  
  int main(void)
  {
      char filename[20] = "a.out";
      char str[20] = "hello\n";
      char *argv[3];
  
      argv[0] = filename;
      argv[1] = str;
      argv[2] = NULL;
      execve("/hel/a.out", argv, NULL);
      return 0;
  }
  
  /*   /hel/a.out code   */
  #include &lt;stdio.h&gt;
  
  int main(int argc, char *argv[], char *envp[])
  {
      printf("%s\n", argv[1]);  /** Here, should the memory pointed by argv[1]
                                 *  be freed after execve  has been called?
                                 */ 
      return 0;
  }
  </code></pre>