
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 – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指针和数据)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)