可能重复:
copying one structure to another
Copying one structure to another
struct node
{
int n;
struct classifier keys[M-1];
struct node *p[M];
}*root=NULL;
我创建了newnode,类型为node
(*newnode)->keys[i]
我想将数据从结构clsf_ptr复制到键结构,结构也是同一类型 我可以这样做,我不想初始化每个成员函数
memcpy((*newnode)->keys[i], clsf_ptr)
答案 0 :(得分:3)
首先,应该是:
memcpy(&(newnode->keys[i]), &clsf_ptr, sizeof(struct classifier));
(假设newnode
是指向node
的指针,而clsf_ptr
是分类符。)
此外,结构分配在C中是合法的,因此您可以这样做:
newnode->keys[i] = clsf_ptr;
请注意,这两种方法都只执行shallow copy。因此,如果struct classifier
具有指向内存的指针,则会复制指针本身,而不是创建内存的新副本。