[C] memmove / memmove.c / memmove in c

2022. 7. 6. 22:09🧑🏻‍💻/C & C++

man memmove

DESCRIPTION memmove() 함수는 문자열 src에서 문자열 dst로 len 바이트를 복사합니다. 두 문자열이 겹칠 수 있습니다. 
복사는 항상 비파괴적인 방식으로 수행됩니다.

 

변수명 설명
void *dst 복사되는 메모리 주소
const void *src 복사할 메모리 주소
size_t n 복사할 길이 (byte 단위)

 

return   
성공 dst의 메모리 시작 주소.
실패 NULL

 

void *memmove(void *dst, const void *src, size_t n)
{
unsigned char *p_dst;
unsigned char *p_src;
size_t i;
if (n == 0 || dst == src)
return (dst);
i = 0;
p_dst = dst;
p_src = (unsigned char *)src;
if (dst < src)
{
while (i++ < n)
*p_dst++ = *p_src++;
}
else
{
while (i < n)
{
p_dst[n - i - 1] = p_src[n - i - 1];
i++;
}
}
return (dst);
}