The memmove() function copies len bytes from string src to string dst. The two strings may overlap; the copy is always done in a non-destructive manner.
변수명 | 설명 |
---|---|
dst | 복사되는 메모리 주소 |
src | 복사할 메모리 주소 |
n | 복사할 길이 (byte 단위) |
성공 : dst의 메모리 시작 주소.
실패 : NULL
void *memmove(void *dst, const void *src, size_t n)
{
unsigned char *dst_ptr;
unsigned char *src_ptr;
size_t i;
if (n == 0 || dst == src)
return (dst);
i = 0;
dst_ptr = dst;
src_ptr = (unsigned char *)src;
if (dst < src)
{
while (i++ < n)
*dst_ptr++ = *src_ptr++;
}
else
{
while (i < n)
{
dst_ptr[n - i - 1] = src_ptr[n - i - 1];
i++;
}
}
return (dst);
}