【发布时间】:2011-07-19 23:48:50
【问题描述】:
如果我想在另一个结构中复制一个结构(在 C 中),有什么优点和缺点:
struct1 = struct2;
对
memcpy(&struct1, &struct2, sizeof(mystruct_t));
它们是等价的吗?性能或内存使用有区别吗?
【问题讨论】:
-
请注意结构内部的内存分配。例如,如果您有一个包含指向字符串的指针的结构,并且您为该字符串分配内存。该内存不会被复制。指向内存的指针被复制,但不是内存本身。换句话说,这种类型的分配不是深拷贝。那个母校的香草 memcpy 也不是。谁拥有分配的内存可能会让人感到困惑。
-
我觉得这个问题更适合 Stackoverflow。
-
我认为这个问题在这里已经得到了很好的回答:stackoverflow.com/q/4931123/176769
标签: c struct variable-assignment memcpy