c - 如何从另一个类似的 typedef'ed 结构中 memcpy 结构

标签 c struct typedef memcpy

  1. struct DISPLAY_INFO *display_info;

  2. typedef 结构DISPLAY_INFO;

    DISPLAY_INFO display_info_2;

必须将diplay_info_2复制到display_info。我该如何使用 memcpy 来做到这一点。

最佳答案

当且仅当display_info指向有效的内存区域时,您可以写入

memcpy(display_info, &display_info_2, sizeof(DISPLAY_INFO));

例如

#include <stdio.h>

typedef struct DISPLAY_INFO{
    int val;
} DISPLAY_INFO;

int main() {

    DISPLAY_INFO *display_info;

    display_info = (DISPLAY_INFO*)malloc(sizeof(DISPLAY_INFO));

    DISPLAY_INFO display_info_2; // The object to be copied
    display_info_2.val = 42;

    memcpy(display_info, &display_info_2, sizeof(DISPLAY_INFO));

    printf("%d", display_info->val);

    free(display_info);

    return 0;
}

http://ideone.com/AUwDNw

关于c - 如何从另一个类似的 typedef'ed 结构中 memcpy 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21796420/

相关文章:

c - C 中的字符串数组操作

c - 读取包含多行字符串、整数和 float 的文件

c - 自动类型转换

相对于结构定义位置(和填充)的 C malloc 偏移量

c++ - 定义结构时是否可以强制字符串为特定大小?

c++ - 模板类成员使用类本身作为模板参数时出现未定义类错误

c - typedef 函数指针 -> 从不兼容的指针类型初始化

c - 在 C 中实现 COBOL REDEFINES

创建结构体对象并将它们放入数组中

c++ - C++中原语的动态typedef