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

2022. 7. 25. 17:35🧑🏻‍💻/C & C++

man memmove

void	*memmove(void *dst, const void *src, size_t len)
{
	unsigned char	*dest;
	unsigned char	*source;

	dest = (unsigned char *)dst;
	source = (unsigned char *)src;
	if (dst < src)
	{
		while (len--)
			*dest++ = *source++;
	}
	else if (dst > src)
	{
		while (len--)
			*(dest + len) = *(source + len);
	}
	return (dst);
}
DESCRIPTION memmove함수는 비파괴적인 방식으로 사용되는 복사입니다.

 

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

 

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

 

memmove는 주소값을 비교한 후 복사 시작.
앞에서부터 복사할 것인지 뒤에서부터 복사할 것인지 확인 후 복사.