我有一个struct
,其中包含字符串和指针。是否有任何库函数可以将struct
的深层副本复制到另一个库中。我不希望逐字段复制,因为我所拥有的结构非常大。
glib是否有任何功能可以解决这个问题?
答案 0 :(得分:6)
没有。通用函数无法知道结构的结构(即仅在编译时可用的信息)。即使它确实如此,它如何知道在所有情况下什么构成了“深层复制品”?
答案 1 :(得分:4)
您可以使用memcpy或memmove复制结构本身的全部内容。但是,由于C没有内省,因此无法通过通用函数复制指向对象。
编辑补充:正如几位评论者所说,你可以在过去几十年中将结构分配给正在使用的C语言中的其他结构,不再需要memcpy。