Possible Duplicate:
Copying one structure to another
struct node
{
int n;
struct classifier keys[M-1];
struct node *p[M];
}*root=NULL;
我创建了新节点,其类型为节点
(*newnode)->keys[i]
我想将数据从结构 clsf_ptr 复制到键结构,该结构也是相同的类型 我可以这样做吗,我不想初始化每个成员函数
memcpy((*newnode)->keys[i], clsf_ptr)
最佳答案
首先,这可能应该是:
memcpy(&(newnode->keys[i]), &clsf_ptr, sizeof(struct classifier));
(假设 newnode
是一个指向 node
的指针,而 clsf_ptr
是一个分类器`)。
此外,结构体赋值在 C 中是合法的,所以你可以这样做:
newnode->keys[i] = clsf_ptr;
请注意,这两种方法都只执行 shallow copy 。因此,如果 struct classifier 具有指向内存的指针,则指针本身将被复制,而不是创建内存的新副本。
关于c - 使用 memcpy 复制结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4944252/