공부/C

C - memcpy

티르 2020. 12. 24. 18:07

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