728x90
반응형
memcpy 함수의 헤더 파일
#include <string.h>
memcpy() 함수의 원형
void * memcpy(void * des, const void * src, size_t num);
Parameter
des
데이터를 복사할 주소이고 void * 형으로 변환되어서 전달된다.
주소를 전달해주면 된다.
src
복사할 데이터가 존재하는 위치의 주소이고 void * 형으로 변환되어서 전달된다.
주소를 전달해주면 된다.
num
복사할 데이터의 byte 수이며 size_t 형으로 전달해주면 된다.
리턴값
des 주소가 void * 형으로 리턴된다.
memcpy함수는 가장 많이 사용되는 함수 중에 하나이죠.
src에서 num byte 만큼을 복사하여 des에 복사해주는 함수입니다.
string의 마지막에 null 값을 확인하여 전송하는 것이 아니라 단순히 num byte 만큼 전송하기 때문에 des / src의 크기에 대해 유의해주셔야 됩니다.
한번 memcpy 함수를 사용해볼까요~?
str 에서 buffer로 hello world!!를 복사를 해보죠.
#include <stdio.h>
#include <string.h>
int main(){
char str[] = "hello world!!";
char buffer[20];
memset(buffer, 0, 20); //buffer를 0으로 초기화
memcpy(buffer, str, strlen(str)); // buffer에 str을 str 길이만큼 복사
printf("*************************\n");
printf("str addr : %x\n", str);
printf("buffer addr : %x\n", buffer);
printf("str: [%s]\n", str);
printf("buffer: [%s]\n", buffer);
printf("*************************\n");
return 0;
}
~
실행 결과
str, buffer이 다른 주소에 있으며 str 에서 buffer로 복사가 잘 되었음을 확인할 수 있습니다.
다른 string.h 파일의 함수에 대해 알고 싶으시다면 String.h 함수 파헤치기!!
반응형
'C 언어 > C 언어 리이브러리 함수' 카테고리의 다른 글
[C언어] String.h 라이브러리 함수 - strncpy() 함수 파헤치기 (0) | 2021.01.25 |
---|---|
[C언어] String.h 라이브러리 함수 - strcpy() 함수 파헤치기 (0) | 2021.01.20 |
[C언어] String.h 라이브러리 함수 - memmove() 함수 파헤치기 (0) | 2021.01.18 |
[C언어] String.h 라이브러리 함수 - strdup() 함수 파헤치기 (0) | 2021.01.17 |
[C언어] String.h 헤더 파일 분석하기(String.h 함수 모음, C언어 래퍼런스) (1) | 2021.01.16 |