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보다 큰 값이면, 순차적으로 하면 안되고 뒤에서 부터 복사 해야한다.

 

순차적으로하면 오류가 생기는 것을 그림으로 설명하겠다.

 

 

'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