gpt4 book ai didi

c++ - 复制结构的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 02:42:44 24 4
gpt4 key购买 nike

我正在尝试复制一个大型结构的一部分,我希望我可以使用指针算法一次复制它的 block 。所以如果我有以下结构

struct {
int field1;
char field2;
myClass field3;
.
.
.
myOtherClass field42;
} myStruct;
struct origionalStruct;
struct *pCopyStruct;

我可以使用 memcpy() 通过指针算法复制它的一部分吗?

memcpy(pCopyStruct, &origionalStruct.field1, 
(char*)&origionalStuct.field1 - (char*)&origionalStuct.field23);

我知道指针算法只对数组有效,但我希望我可以通过将所有内容都转换为 (char*) 来解决这个问题。

最佳答案

我的回答只适用于 c++

使用memcpy() 来复制对象的成员变量会破坏封装,一般不是好的做法。 IE。仅当您有非常好的理由时才这样做。如果您小心的话,它可以工作,但是您会使您的程序变得非常脆弱:您增加了 future 更改引入错误的风险。

例如另见 http://flylib.com/books/en/2.123.1.431/1/

关于c++ - 复制结构的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com