Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=memcpy">memcpy</a>(3)

1장. memcpy(3)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 예제

메모리 영역 복사


1.1절. 사용법

#include <string.h>

void *memcpy(void *dest, const void *src, size_t n);
		


1.2절. 설명

memcpy 는 메모리 영역 src를 메모리 영역 dest 로 n 바이트 복사한다. 메모리 영역은 겹쳐지지 않는다. 만일 메모리 영역을 겹쳐서 사용하길 원한다면 memmove(3)를 사용한다.


1.3절. 반환값

memcpy() 함수는 포인터 dest 를 반환한다.


1.4절. 예제

#include <unistd.h>

#include <string.h>

struct mydata
{
    int age;
    int weight; 

    char name[16];
    char juso[80];
};

int main()
{
    struct mydata data;
    struct mydata *mdata;
    char f_data[120];
    int my_weight;

    data.age    = 29;
    data.weight = 64;

    strcpy(data.name, "yundream"); 
    strcpy(data.juso, "seoul korea");

    memset(f_data, 0x00, 120);
    
    // data 구조체를 f_data 로 메모리 복사한다.  
    memcpy(f_data, (void *)&data, sizeof(struct mydata));

    mdata = (void *)&f_data; 

    printf("pcopy %d\n", mdata->age);

    memcpy((void *)&my_weight, f_data+4, sizeof(int)); 

    printf("%d\n", my_weight);
}