반응형
목차
memmove()란
해당 기능은 string.h
헤더 파이렝 정의되어 있고 src의 값을dest로 count길이만큼 복사하여 저장하는 함수이다.
만약, object가 중복이 된다면: 마치 char type이 일시적으로 char[] 형태로 변화하여 복사가 되어진다. 그래서 dest에는 Array 형태로 값이 복사됨
memmove() 사용 예시
#include <stdio.h>
#include <string.h>
int main(void) {
char src[20] = "this is memmove func";
char dest[20];
printf("src is ->%s\n", src); /* this is memmove func */
memmove(dest, src, sizeof(char) * 6);
printf("src is ->%s\n", src); /* this is memmove func */
printf("dest is ->%s\n", dest); /* this i*/
return 0;
}
이러한 방식으로 code를 작성하는데 move라고 써져있지만 이동하는 것이 아니고 복사를 하는 방식이다. 이 기능은 메모리 영역이 겹치더라도 안전하게 복사를 수행할 수 있어, memcpy()에 비해 메모리 오류에 있어 안전한 방법이지만, 그만큼 영역이 겹치는지 여부를 파악해야하기 떄문에 memcpy()보다는 느림
그렇기에 자신이 구성하는 코드의 메모리 영역이 겹치는지 파악하고 적절한 함수를 사용하는 것을 권장한다.
반응형
'IT 톺아보기 > 이런저런 공부' 카테고리의 다른 글
UART protocol (1) | 2023.05.24 |
---|---|
LIN이란? (0) | 2023.05.08 |
memset 사용법 (0) | 2023.04.20 |
CAN Message (0) | 2023.04.19 |
memcpy 사용법 (0) | 2023.04.18 |