把一段内存的数据复制到另一段内存,这个过程是cpu搬运。

  • 变量赋值
int a = 10;
int b;
memcpy(&b,&a,sizeof(a));
printf("b=%d\n",b);
  • 数组复制
int arr1[] = {1,2,3,4};
int arr2[4];
memcpy(arr2,arr1,sizeof(arr1));//将arr1内存中的数据长度为arr1的长度复制到arr2的内存
printf("arr2=%d %d %d %d\n", arr2[0], arr2[1], arr2[2], arr2[3]);
  • 结构体复制
typedef struct Point{
	int x;
	int y;
}Point_t;
int main(void)
{
    Point_t p1 = {1,2};
    Point_t p2 = {0};
    memcpy(&p2,&p1,sizeof(p1));
    printf("p2,(%d,%d)",p2.x,p2.y);
    return 0;
}