21xrx.com
2025-03-24 17:41:14 Monday
文章检索 我的文章 写文章
C++复制结构体的方法
2023-07-05 05:51:29 深夜i     30     0
C++ 结构体 复制

C++中可以通过不同的方式复制结构体。下面介绍一些常见的方法:

1.使用"="运算符:当两个结构体的类型相同时,可以使用"="运算符将一个结构体的所有字段值复制到另一个结构体中。

例如:

struct Person
  string name;
  int age;
;
Person p1 = 20;
Person p2 = p1; // p2的所有字段值被复制为"Tom"和20

2.使用memcpy函数:memcpy函数用于将一个内存区域中的数据复制到另一个内存区域中,可以用来复制结构体。

例如:

struct Person
  string name;
  int age;
;
Person p1 = "Tom";
Person p2;
memcpy(&p2, &p1, sizeof(Person)); // 复制p1中的所有字段值到p2中

3.使用赋值函数:在结构体中定义赋值函数,可以对结构体进行深度复制(即复制结构体中的指针指向的内存区域)。

例如:

struct Person {
  string name;
  int age;
  // 定义赋值函数
  void operator=(const Person& other)
    name = other.name;
    age = other.age;
  
};
Person p1 = 20;
Person p2;
p2 = p1; // 调用赋值函数,复制p1中的所有字段值到p2中

需要注意的是,在进行结构体复制时,如果结构体中包含指针类型的字段,需要进行深度复制,否则指针将指向同一块内存区域,会产生意外的后果。

  
  

评论区