memcpy
소스 변수로부터 지정한 범위만큼 타겟 변수로 값을 복사합니다.
memcpy 함수 구조
#include <string.h> void * memcpy ( void *dest, const void *src, size_t n);
src 변수에서 n 길이만큼 dest 변수로 값을 복사합니다.
이 때, 메모리 영역은 겹치지 않습니다.
메모리 영역을 겹쳐쓰길 원하는 경우 memmove 함수를 사용합니다.
memcpy 사용예제
memset 링크를 먼저 봐주시면 더욱 좋습니다.
#include <stdio.h> #include <string.h> EXEC SQL BEGIN DECLARE SECTION; char sC1[10+1]; char sC2[10+1]; EXEC SQL END DECLARE SECTION; memset( sC1, 0x00, sizeof(sC1) ); // sC1 변수의 메모리 시작주소부터 sC1 변수의 크기만큼 0x00 으로 채웁니다. EXEC SQL SELECT C1 INTO :sC1 FROM T1; memset( sC2, 0x00, sizeof(sC2) ); memcpy( sC2, sC1, sizeof(sC1) ); // sC1 변수를 sC1 크기(=전체) sC2 변수에 복사합니다. printf("sC1=\"%s\", sC2=\"%s\"\n", sC1, sC2); ...
sC1="GOLDILOCKS", sC2="GOLDILOCKS"
이 작업은 아래처럼 하는것보다 가독성에서 좋으며, 수행속도도 빠릅니다.
for(i=0; i<sizeof(sC1); i++){ sC2[i]=sC1[i]; }
'Computer Language > C' 카테고리의 다른 글
[C] malloc, free 로 메모리 동적 할당 해제하기 (0) | 2018.06.27 |
---|---|
[C] memcmp 메모리 블록을 비교하는 함수 (0) | 2018.06.27 |
[C] memset 바이트 단위로 값을 지정하는 함수 (0) | 2018.04.27 |
[C] 포인터 Pointer 알아보기 (0) | 2018.02.20 |
[C] Call By Value 와 Call By Reference 차이점 알아보기 (0) | 2018.02.19 |