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보다 큰 값이면, 순차적으로 하면 안되고 뒤에서 부터 복사 해야한다.
순차적으로하면 오류가 생기는 것을 그림으로 설명하겠다.
'42 Libft' 카테고리의 다른 글
#1.10 ft_memchr (수정완료) (0) | 2020.10.05 |
---|---|
#1.9 isalpha (0) | 2020.10.05 |
#1.7 ft_atoi 수정완료 (0) | 2020.10.03 |
#1.6 ft_memccpy (0) | 2020.10.03 |
#1.5 ft_strncmp (수정 완료) (0) | 2020.10.03 |