struct结构体和char型数组的相互转化

针对内存连续的结构体,把一整段内存拷贝到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;

猜你喜欢

转载自blog.csdn.net/zhangge3663/article/details/107080342