关于memcpy拷贝结构体、结构体数组到字符数组(字符串)的问题
2018-01-02 16:59
549 查看
memcpy可以将结构体拷贝到字符数组中,但直接从字符数组中是不能取出想要的结果的。因为结构体中数据类型和字符类型是不一致的,
如果真要取出数据内容,有两种方法:1.再次使用memcpy进行解析 2.强制类型转换.
例如:1
struct aaa {
int a;
int b;
}aa,bb;
char buffer[20];
aa.a=20;aa.b=30;
memcpy(buffer,&aa,sizeof(aaa)); //一般是作为发送方的处理方式
memcpy(&bb,buffer,sizeof(aaa)); // 一般是作为接受方的处理方式
cout<<bb.a<<bb.b<<endl;
例如:2
memcpy(buffer,&aa,sizeof(aaa));
aaa *new = (aaa *)buffer;
cout<<new->a<<new->b<<endl;
同样,memcpy也可以将结构体数据拷贝到字符中,采用上述方式即可取出字符数组中的内容
aaa bb[2],aa[2];
memset(aa, 0, sizeof(bbb)*2);
memset(bb, 0, sizeof(bbb)*2);
char arr[20];
aa[0].a=40;
aa[0].b=50;
aa[1].a = 100;
aa[1].b = 200;
memcpy(arr,aa,sizeof(bbb)*2);
//bbb *cc = (bbb *)arr;
memcpy(bb, arr, sizeof(bbb)*2);
cout<<bb[0].a<<bb[0].b<<bb[1].a<<bb[1].b<<endl;//可以证明输出结果分别是:40,50,100,200
如果真要取出数据内容,有两种方法:1.再次使用memcpy进行解析 2.强制类型转换.
例如:1
struct aaa {
int a;
int b;
}aa,bb;
char buffer[20];
aa.a=20;aa.b=30;
memcpy(buffer,&aa,sizeof(aaa)); //一般是作为发送方的处理方式
memcpy(&bb,buffer,sizeof(aaa)); // 一般是作为接受方的处理方式
cout<<bb.a<<bb.b<<endl;
例如:2
memcpy(buffer,&aa,sizeof(aaa));
aaa *new = (aaa *)buffer;
cout<<new->a<<new->b<<endl;
同样,memcpy也可以将结构体数据拷贝到字符中,采用上述方式即可取出字符数组中的内容
aaa bb[2],aa[2];
memset(aa, 0, sizeof(bbb)*2);
memset(bb, 0, sizeof(bbb)*2);
char arr[20];
aa[0].a=40;
aa[0].b=50;
aa[1].a = 100;
aa[1].b = 200;
memcpy(arr,aa,sizeof(bbb)*2);
//bbb *cc = (bbb *)arr;
memcpy(bb, arr, sizeof(bbb)*2);
cout<<bb[0].a<<bb[0].b<<bb[1].a<<bb[1].b<<endl;//可以证明输出结果分别是:40,50,100,200
相关文章推荐
- 关于memcpy拷贝结构体、结构体数组到字符数组(字符串)的问题
- 关于字符串 字符数组 字符型指针的问题
- C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(2)
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- C语言:字符串、结构体中关于数组的几个问题
- C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(1)
- 关于字符串,字符数组 ,局部和全局地址分配问题
- 结构体中字符数组赋值字符串问题
- 关于C语言字符数组、字符串和指针的相关问题
- 关于结构体里面的字符串指针输出出现乱码的问题与结构体数组作为参数传值的问题
- 关于字符串与字符数组的一些小问题
- 关于算法—— 一维字符串数组之间组合问题的C#实现
- 一个关于取字符串中数字和字符的逻辑问题
- javascript关于对象深拷贝和数组去重的问题...
- ActionScript3中关于数组深浅拷贝的问题
- JPasswordField 中得到的字符数组转化为字符串(密码乱码问题)
- 字符串同构问题 字符串操作:数组计数字符个数问题
- 关于c语言中的字符数组和字符串指针
- 关于删除字符串中重复字符问题?解析
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(上)