针对内存连续的结构体,把一整段内存拷贝到char数组对应的内存中。考虑4字节对齐!
struct Test
{
int a;
char b;
char c[1024];
unsigned short d;
};
char *ch = "abcdefghijklmn1234567890";
char *chTest = new char[2048];
memset(chTest, 0, sizeof(chTest));
Test *t1 = new Test;
t1.a = 10;
t1.b = -20;
strcpy(t1.c, ch);
t1.d = 12;
//结构体转为char *
memcpy(chTest, (char *)t1, sizeof(Test));
//char *转为结构体
Test *t2;
t2 = (Test *)chTest;