Can memcpy or memmove return a different pointer than dest?
<p>The function <code>memmove</code> is defined like this:</p>

<pre><code>void *memmove(void *dest, const void *src, size_t n);
</code></pre>

<p>In the Linux manual page, it says:</p>

<blockquote>
  <p>RETURN VALUE<br>
  The memmove() function returns a pointer to dest.</p>
</blockquote>

<p>Why isn't the function just defined as <code>void memmove(…)</code> when it always returns one of the input parameters? Can the return value be different from <code>dest</code>?</p>

<p>Or is the return value really always <code>dest</code> and it is just done to be able to compose the function in some creative ways?</p>