我想知道是否有一种优雅的方法将一个结构复制到另一个结构,其中第二个结构基本上与原始结构相同,除了没有最后一个字段。
例如,
struct A {
int a;
int b;
int c;
};
struct B {
int a;
};
struct A v1;
struct B v2;
会,
memcpy(&v2, &v1, sizeof(v2));
实现我想要的功能吗? v2 的哪里具有最初在 v1 中找到的“a”值?
谢谢
最佳答案
如果您不复制 A 中的所有字节,而是仅复制 B 期望的字节数,您将获得所需的结果:
memcpy(&v2, &v1, sizeof(v2)); // remember that the first argument is the destination
但是,这不是好的编码风格。通过这个最小的代码示例,很难说清楚,但您可能希望 A 从 B 继承,以便您可以转换两者而无需物理复制内存。
否则,这会更容易、更干净:
b2.a = v1.a;
关于c++ - 将结构复制到不同的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787223/