网络编程时需要将数据保存到char数组中字节流传输。展示如何将int型数据保存到char数组中。
char buf[1024];
int arr[] = {123,45,678,980};
for(int i = 0; i < sizeof(arr)/sizeof(int); i++)
*(int*)&buf[4*i] = arr[i];
for(int i = 0; i < sizeof(arr)/sizeof(int); i++)
printf("%d\n", *(int*)&buf[4*i]);
doule, float 换换就可以了。
struct Node{
int x;
int y;
};
int main(int argc, char *argv[])
{
char buf[1024];
Node arr[] = {{123,345},{234,567}};
int nodeLen = sizeof(Node);
for(int i = 0; i < sizeof(arr)/nodeLen; i++)
*(Node*)&buf[nodeLen*i] = arr[i];
for(int i = 0; i < sizeof(arr)/nodeLen; i++){
int tmp1 = *(int*)&buf[nodeLen*i];
int tmp2 = *(int*)&buf[nodeLen*i + sizeof(int)];
printf("%d, %d\n",tmp1, tmp2);
}
return 0;
}