c – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指针和数据)?

c – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指针和数据)?,第1张

概述所以我有一个类似的结构 struct GetResultStructure{ int length; char* ptr;}; 我需要一种方法来制作它的完整副本,这意味着我需要一个副本,以便在原始结构中具有新的ptr指向的数据副本.有可能吗?我的意思是我拥有的任何包含ptrs的结构都会有一些字段的长度我需要一个函数来复制我的结构,通过给定的长度数组来处理它们所指向的所有ptrs和数据… 所以我有一个类似的结构

struct GetResultStructure{  int length;  char* ptr;};

我需要一种方法来制作它的完整副本,这意味着我需要一个副本,以便在原始结构中具有新的ptr指向的数据副本.有可能吗?我的意思是我拥有的任何包含ptrs的结构都会有一些字段的长度我需要一个函数来复制我的结构,通过给定的长度数组来处理它们所指向的所有ptrs和数据……有什么很酷的增强函数吗?或者任何方式如何创建这样的功能?

解决方法 对于您描述的特定方案,请使用std :: vector或其他序列容器.如果这样做,那么只需复制GetResultStructure类型的对象也将复制指向数据:

struct GetResultStructure {    std::vector<char> data;};GetResultStructure a = GetData();GetResultStructure b = a; // a and b have distinct,equivalent data vectors

通常,当您需要自己实现时,可以通过实现复制构造函数和复制赋值运算符来实现.最简单的方法是使用复制和交换习语,在What is the copy-and-swap idiom?中详细介绍

总结

以上是内存溢出为你收集整理的c – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指针和数据)?全部内容,希望文章能够帮你解决c – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指针和数据)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1220460.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存