title: Does va_copy() require va_end()?
body: <p>When dealing with variable arguments, is it just <code>va_start()</code> that needs a matching <code>va_end()</code> call, or does <code>va_copy()</code> require a matching <code>va_end()</code> too, i.e</p>
  
  <pre><code>void foo(char *x, ...)
  {
    va_list l,c;
  
    va_start(l,x);
    va_copy(c,l);
  
    ---
    va_end(c); //is this correct ?
    va_end(l);
  }
  </code></pre>