c - 使用 memcpy 复制结构

标签 c

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/

相关文章:

c - 使用函数更新列表(无返回值)

c++ - 在 C/C++ 中去除二进制数中的前导零

c++ - 万无一失的配置方式#define/#ifdef

c - reverseList 函数不在队列中工作

c - Arduino digitalRead() 总是返回低电平

c++ - 循环遍历 Makefile 中的文件

c - 检测静态库是否为瘦存档

c - 在 Windows 上显示带有自定义按钮标题的警报?

c++ - 将 C 结构映射到 XML 元素

c - 在 C 中返回特定数量的小数