将结构深度复制到另一个结构

时间:2012-02-27 22:53:00

标签: c struct glib deep-copy

我有一个struct,其中包含字符串和指针。是否有任何库函数可以将struct的深层副本复制到另一个库中。我不希望逐字段复制,因为我所拥有的结构非常大。

glib是否有任何功能可以解决这个问题?

2 个答案:

答案 0 :(得分:6)

没有。通用函数无法知道结构的结构(即仅在编译时可用的信息)。即使它确实如此,它如何知道在所有情况下什么构成了“深层复制品”?

答案 1 :(得分:4)

您可以使用memcpy或memmove复制结构本身的全部内容。但是,由于C没有内省,因此无法通过通用函数复制指向对象。

编辑补充:正​​如几位评论者所说,你可以在过去几十年中将结构分配给正在使用的C语言中的其他结构,不再需要memcpy。