gpt4 book ai didi

c - 使用 malloc 在 C 中进行序列化

转载 作者:可可西里 更新时间:2023-11-01 02:53:52 24 4
gpt4 key购买 nike

在整个网络上搜索在 C 中序列化数据的方法,以便我可以通过 TCP/IP 套接字发送结构,但我找不到任何简单的方法。但我认为通过这种方式,您可以固定数据包中位的位置,从而“事实上”将其序列化。

packet *datapkt = NULL;
datapkt = (packet*)malloc(PKT_SIZE); // Allocation of memory with this size
datapkt->field = data;
......
send(datapkt);
free(datapkt);

谁能告诉我这是否是个好主意?到目前为止,它正在我的项目中工作。

提前致谢!

最佳答案

这样做时,您必须考虑两件事:

1. Endianness
2. Compiler padding

第一点将使数据根据系统的字节顺序采用不同的形式。对于大于一个字节的类型,这是一个问题。

对于第二点,您需要确保编译器没有在结构的成员之间添加任何字节。这可以通过编译器编译指示来完成。

关于c - 使用 malloc 在 C 中进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41360104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com