将结构体内的数组复制到结构体类的另一个数组
时间: 2024-09-18 07:07:20 浏览: 52
C++使struct对象拥有可变大小的数组(详解)
当你需要将一个结构体内的数组复制到该结构体类的另一个数组时,首先你需要确保这两个数组在内存上是同类型的,也就是说它们包含相同元素类型并且长度相等。以下是这个过程的一个简单示例:
假设我们有一个名为`Person`的结构体,它有两个成员:`name` 字符串数组和 `age` 整型数组。如果你想将一个`Person`实例的数组复制到另一个同样大小的`Person`数组中,可以按照以下步骤操作:
```c++
#include <string>
#include <array>
// 定义Person结构体
struct Person {
std::string name[10];
int age[10];
};
// 创建一个Person实例并填充数据
Person original_person = {{"Alice", "Bob", ...}, {25, 30, ...}};
// 定义另一个同样大小的Person数组
Person copy_persons[10];
// 复制数据
for (size_t i = 0; i < sizeof(original_person.name) / sizeof(original_person.name[0]); ++i) {
copy_persons[i].name = original_person.name[i]; // 注意这里需要浅拷贝字符串数组
for (size_t j = 0; j < sizeof(original_person.age) / sizeof(original_person.age[0]); ++j) {
copy_persons[i].age[j] = original_person.age[j];
}
}
阅读全文