다음은 memcpy() 함수에 대한 선언입니다. 보이드 * memcpy (보이드 * 제한 dst, const void * src, size_t n); memcpy()는 한 위치에서 다른 위치로 메모리 블록을 복사하는 데 사용됩니다. 그것은 에서 선언 string.h 아래 프로그램 src 버퍼 는 memcpy의 도움으로 dst 버퍼에서 복사. 때때로 사람들은 자신의 프로젝트에 대한 사용자 정의 memcpy 함수를 만들어야합니다. 그래서 여기 아래 섹션에서, 나는 자신의 memcpy 함수를 만드는 방법을 설명하거나 우리가 c. 아래에서 memcpy 구현을 볼 것이라고 말할 수 있습니다 memcpy ()의 작업을 표시하는 샘플 C 프로그램입니다. 여러 C 컴파일러가 적합한 메모리 복사 루프를 memcpy 호출로 변환합니다. memcpy()는 „string.h” 헤더 파일에 선언된 라이브러리 함수로, 한 위치에서 다른 위치로 메모리 블록을 복사하는 데 사용됩니다(문자열을 다른 위치로 복사하는 것으로 간주될 수도 있음). memcpy 할당 함수에 의해 얻은 개체의 유효 유형을 설정 하는 데 사용할 수 있습니다. memcpy 함수는 소스 개체에서 대상 개체로 n 문자를 복사합니다. 원본 및 대상 개체가 겹치는 경우 memcpy의 동작은 정의되지 않습니다. memcpy에서는 소스 및 대상 버퍼의 주소와 복사할 바이트(n)의 수를 전달해야 합니다. 엄격한 별칭이 두 가지 유형의 값과 동일한 메모리를 검사하는 것을 금지하는 경우 memcpy를 사용하여 값을 변환할 수 있습니다.

memcpy의 구현은 큰 문제가 되지 않습니다., 당신은 char* (1 바이트)에 주어진 된 소스 및 대상 주소를 입력 해야 합니다. 타이프 캐스팅 후 n (주어진 길이)까지 하나 씩 대상에 소스에서 데이터를 복사합니다. memcpy는 메모리-메모리 복사본에 대 한 가장 빠른 라이브러리 루틴입니다. 일반적으로 겹치는 입력을 처리하기 위해 예방 조치를 취해야 하는 복사하거나 memmove를 스캔해야 하는 strcpy보다 효율적입니다. string.h – memcpy() 함수 예: 여기서는 한 위치에서 다른 위치로 메모리 블록을 복사하는 데 사용되는 memcpy() 함수에 대해 알아보겠습니다. IncludeHelp에 의해 제출, 12 월 06, 2018 노트: 1) memcpy () 오버 플로우를 확인 하지 않습니다 또는 2) memcpy() 소스 및 대상 주소가 겹칠 때 문제가 발생 합니다. memmove()는 겹치는 것을 잘 처리하는 또 다른 라이브러리 함수입니다. 위의 코드에서는 컴파일 타임 오류가 없지만 프로그램을 실행할 때 소스 포인터가 유효한 메모리를 가리키지 않기 때문에 정의되지 않은 동작을 얻습니다. .

이 함수는 str1인 대상에 대한 포인터를 반환합니다. 예 1) 문자열을 다른 문자열로 복사(문자열의 모든 바이트에서 다른 바이트로) 예 2) 바이트 배열에서 다른 배열로 바이트 중 일부를 복사할 때 위의 코드를 컴파일할 때 컴파일러가 똑똑하지 않지만 코드 behav를 실행할 때 오류가 발생하지 않습니다. dst가 유효한 메모리를 가리키지 않기 때문에 ior가 정의되지 않습니다. str1 – 이것은 콘텐츠가 복사 될 대상 배열에 대한 포인터입니다, 형식 void *.