我正在编写一个轻量级序列化函数,需要在其中包含两个可变大小的数组。
- 我应该如何跟踪每个文件的大小?
- 我应该如何定义结构?
- 我是不是做错了?
编辑:结果必须是一个连续的内存块
最佳答案
这解析为类似的东西
typedef struct
{
size_t arr_size_1, arr_size_2;
char arr_1[0/*arr_size_1 + arr_size_2*/];
} ...;
大小应位于动态大小数据的前面,以便在扩展数组时它不会移动。
您的结构中不能有 2 个未知 大小的数组,因此您必须将它们折叠成一个,然后从第一个指针访问相关数据。
关于c - 如何在 C 中创建具有两个可变大小数组的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223876/