用memcpy初始化结构体
时间: 2023-10-12 15:19:28 浏览: 139
可以使用`memcpy`函数来初始化结构体,其基本语法如下:
```c
memcpy(&dest_struct, &src_struct, sizeof(struct struct_name));
```
其中,`dest_struct`和`src_struct`分别是目标结构体和源结构体的指针,`sizeof(struct struct_name)`是结构体的大小,用于指定要复制的字节数。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
int age;
};
int main() {
struct student s1, s2;
s1.id = 1;
strcpy(s1.name, "Tom");
s1.age = 18;
memcpy(&s2, &s1, sizeof(struct student));
printf("s2.id = %d\n", s2.id);
printf("s2.name = %s\n", s2.name);
printf("s2.age = %d\n", s2.age);
return 0;
}
```
在上面的示例中,我们首先定义了一个名为`student`的结构体,并在`main`函数中创建了`s1`和`s2`两个结构体变量。然后,我们使用`s1`给结构体成员赋值,并使用`memcpy`函数将`s1`的值复制到`s2`中。最后,我们输出`s2`的成员值,可以看到`s2`的值与`s1`相同。
阅读全文