매개 변수 설명 :
void * memcpy (void * destination, const void * source, size_t num);
destination
: 포인터 컨텐츠를 복사 할 대상 배열, 유형
는 참조 링크를 참조하십시오 - void * 유형의 포인터에 캐스팅됩니다.
source
: 복사 할 데이터 소스에 대한 포인터이며 const void * 유형의 포인터로 형식 형변환됩니다.
num
: 복사 할 바이트 수. size_t는 부호없는 정수 유형입니다.
memcpy
은 단순히 주소 destination
에서 시작하는 주소 source
및 메모리에 복사를 시작 num
바이트를합니다.
포인터는 유형에 관계없이 고정 길이 메모리 주소입니다. 포인터가 char *
(문자 데이터를 가리킴), int *
(정수 데이터를 가리킴) 또는 void *
(알 수없는 유형의 데이터를 가리킴)인지 여부는 중요하지 않습니다. 여전히 메모리를 가리키고 있습니다.
memcpy
은 명시적인 바이트 수를 복사하기 때문에, 가리키는 데이터의 유형은 부적절합니다. 데이터에 메모리 주소 만 있으면됩니다.
예. 작동합니다. 해당 바이트 수에 걸쳐 문자 포인터를 반복하는 것과 동일하게 작동합니다. –
왜 'memcpy'가 void 포인터를 받아들이도록 정의되었다고 생각하면 작동하지 않을 것이라고 생각하십니까? – kaylum
시도해보십시오. 작동하지 않는다면 작동 할 것이므로, [mcve]로 SO에게 다시 돌아 오십시오. –