memcpy拷贝结构体
时间: 2023-06-21 08:12:55 浏览: 172
memcpy的用法
可以使用memcpy函数来拷贝结构体。memcpy函数可以将一个内存区域的数据复制到另一个内存区域,包括结构体。下面是一个例子:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
int id;
char name[20];
int age;
} Person;
int main() {
Person p1 = {1, "Tom", 20};
Person p2;
memcpy(&p2, &p1, sizeof(Person));
printf("p1: %d %s %d\n", p1.id, p1.name, p1.age);
printf("p2: %d %s %d\n", p2.id, p2.name, p2.age);
return 0;
}
```
上面的代码定义了一个Person结构体,包括id、name和age三个成员变量。在main函数中,首先定义了一个p1结构体,并初始化了其三个成员变量。然后定义了一个p2结构体,使用memcpy函数将p1的值拷贝到p2中。最后输出p1和p2的值,可以看到它们的值是相同的。
需要注意的是,使用memcpy函数拷贝结构体时,需要指定要拷贝的字节数,也就是结构体的大小。可以使用sizeof运算符来获取结构体的大小。同时,由于memcpy函数是按字节拷贝的,因此结构体中的成员变量需要是连续的,不能有空洞。
阅读全文