헤더는 include<memmory.h> or string.h 이다.
memcpy(복사될 문자열 B+시작할 주소, 복사할 문자열 A+시작할 주소, 복사될 메모리의 크기)
memmove(이동될 문자열 B+시작할 주소,이동할 문자열 B+시작할 주소, 이동 메모리의 크기)
결과적으로 memcpy, memmove는 문자열을 복사한다는 면에서 같다.
#include<stdio.h>
#include<string.h>
int main()
{
char A[] = "I love her";
char B[] = "I feel you";
int C[] = {1,2,3,4,5};
int D[] = {6,7,8,9,10,11};
int i;
printf("원래 문장 A : %s \n",A);
printf("원래 문장 B : %s \n",B);
printf("원래 문장 C :");
for(i=0;i<5;i++)
{
printf("%d ",C[i]);
}
printf("\n");
printf("원래 문장 D :");
for(i=0;i<6;i++)
{
printf("%d ", D[i]);
}
printf("\n");
memcpy(B+7,A+7,3);
memmove(D,C,sizeof(int)*5); //D[1]과 C[3]을 하고 싶다면 &D[1],&C[3],4 를 하면 된다.
printf("바뀐 후 A : %s \n",A);
printf("바뀐 후 B : %s \n",B);
printf("바뀐 후 C :");
for(i=0;i<5;i++)
{
printf("%d ",C[i]);
}
printf("\n");
printf("바뀐 후 D :");
for(i=0;i<6;i++)
{
printf("%d ", D[i]);
}
printf("\n");
}
아래 그림처럼 A[7] 부터 3개가 B[7] 부분으로 복사 되었고
C를 D에 이동시켰다.
이렇게 결과는 둘이 같다.