42 Libft
#1.8 ft_memmove
코딩클로스
2020. 10. 4. 15:16
void* memmove(void* destination, const void* source, size_t num);
설명
memmove() 함수는 src 메모리 영역에서 dest 메모리 영역으로 n byte 만큼 복사합니다.
src 배열은 src와 dest 의 메모리 영역과 겹치지 않는 메모리 영역부터 먼저 복사합니다
인자
destination
데이터가 복사될 곳을 가리키는 포인터로, 언제나 void* 형이다.
source
복사할 데이터가 있는 위치를 가리키는 포인터로 언제나 void* 형이다.
num
복사할 바이트 수
리턴값
destination 이 리턴된다.

중요한 점이있다 dest가 src보다 주소가 작을 때와 클 때를 구분해야한다.
dest의 주소가 src보다 작은 값이면, 29~32라인 처럼 순차적으로 복사하면 되지만
dest의 주소가 src보다 큰 값이면, 순차적으로 하면 안되고 뒤에서 부터 복사 해야한다.
순차적으로하면 오류가 생기는 것을 그림으로 설명하겠다.



