类型转换与memcpy():哪个更好?

Cra*_*008 -4 c c++ linux pointers

假设我有两个变量如下:

typedef struct{
   int proc;
   int id;
   int value;
   int last;
} my_struct;

struct my_struct dummy;
int len = 3*sizeof(int);
char my_msg[len];

//Some assignments are done here on those variables 
Run Code Online (Sandbox Code Playgroud)

现在,我想dummy通过写上内容来删除内容my_msg.那么以下哪一种更好的方法呢?

memcpy(&dummy, my_msg, size);
Run Code Online (Sandbox Code Playgroud)

要么

&dummy = (my_struct *) my_msg;
Run Code Online (Sandbox Code Playgroud)

Jen*_*edt 6

除了你的语法有点错误之外,你的类型转换具有未定义的行为,因为你的结构可能由于填充而具有不同的大小,并且具有特定的对齐属性.不要这样做.