I see they&#x27;ve finally changed the memcpy() specification to forbid overlapping memory areas completely.<p>Previously, it was defined to copy from low addresses to high addresses, which meant you could use this to fill an array:<p><pre><code>    p[0] = 42;
    memcpy(&amp;p[1], &amp;p[0], sizeof(p)-sizeof(*p));
</code></pre>
And people <i>did</i>.