我正在寻找一个哈希表的开源 C 实现,它将所有数据保存在一个内存块中,这样它就可以很容易地通过网络发送。 我只能找到为添加到其中的每个键值对分配小块内存的内存。
非常感谢您的所有投入。
编辑:它不一定需要是哈希表,无论键值对表可能做什么。
最佳答案
您序列化此类数据结构的次数(通过网络发送也是序列化)与您使用此类数据结构(在您的程序中)的次数相当低。因此,大多数实现更多地关注速度而不是“可能更容易序列化”方面。
如果所有数据都在一个分配的内存块中,对该数据结构的大量操作会有点昂贵,因为您必须:
- 在添加操作时重新分配内存
- 最有可能对删除操作进行压缩/清理(这样您非常喜欢的一个 block 就很密集并且没有空洞)
无论如何,大多数网络操作都会被缓冲,只需遍历键并发送键 + 值。
关于c - 数据在一个内存块中的 ANSI C 哈希表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3287769/