memcpy (memory + copy)
기능
-
메모리 일부분을 바이트 복사
함수
#include <string.h>
void *function(void *destination, const void *source, size_t num);
-
string.h에 존재
-
*destination : 데이터가 복사 될 시작 위치 주소
-
*source : 복사할 데이터들의 시작 위치 주소
- num : 복사할 데이터의 바이트 수
반환값
- *destination
사용 예제
#include <string.h>
#include <stdio.h>
int main() {
char src[] = "source";
char dst[] = "destination";
printf("%s\t%s\n", src, dst);
memcpy(dst, src, sizeof(src));
printf("%s\t%s\n", src, dst);
return 0;
}
-
결과: src의 크기만큼 dst에 값을 복사

주의사항
-
source의 널 문자(null termination character)를 검사하지 않고 num만큼 복사 함
- destination과 source가 가리키는 배열의 크기는 num보다 커야 함 -> 오버플로우 방지
-
destination과 source가 겹쳐있다면 memmove함수를 사용
'공부 > C' 카테고리의 다른 글
C - bzero (0) | 2020.12.24 |
---|---|
C - memset (0) | 2020.12.24 |