memcpy


소스 변수로부터 지정한 범위만큼 타겟 변수로 값을 복사합니다.



memcpy 함수 구조


#include <string.h>
void * memcpy ( void *dest, const void *src, size_t n);

src 변수에서 n 길이만큼 dest 변수로 값을 복사합니다.

이 때, 메모리 영역은 겹치지 않습니다.

메모리 영역을 겹쳐쓰길 원하는 경우 memmove 함수를 사용합니다.



memcpy 사용예제


memset 링크를 먼저 봐주시면 더욱 좋습니다.

http://mozi.tistory.com/56


#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];
    }