2 ms·
Ok, updated version: void* memmove(void *vdst, void *vsrc, int n) { char *dst, *src; dst = vdst; src = vsrc; if(vd
by antihero 15y ago
Ok, updated version:
void*
memmove(void *vdst, void *vsrc, int n)
{
char *dst, *src;
dst = vdst;
src = vsrc;
if(vdst > vsrc) {
dst = vdst + n;
src = vsrc + n;
while(n-- > 0)
*--dst = *--src;
}
else if(vdst < vsrc)
while(n-- > 0)
*dst++ == *src++;
return vdst;
}
Does this solve the bugs?
- abecedarius 15y agoThere's an == for an =. Also vdst+n is an error, I believe, because sizeof *vdst has no meaning.