gpt4 book ai didi

c++ - 如何从 flatbuffers 中获取 union 结构的 void* 值反序列化的大小

转载 作者:行者123 更新时间:2023-11-27 23:38:23 30 4
gpt4 key购买 nike

我正在使用 FlatBuffers 反序列化包含 union 结构的数据

struct ReqMsgUnion {
ReqMsg type;
void *value;
}

架构:

 table Request {
seq_no: uint = 0;
msg: ReqMsg (required);
}

现在我想使用 memcopy() 来复制 'value',但是我无法获得正确的 'value' 大小,因为里面有一些 '\0'(如果我没记错的话)。我在网上搜索,找到了“在模式中添加一个dataLength”之类的方法,但我想知道是否还有其他更好的想法。谢谢!

最佳答案

没有办法void* 中提取它指向​​的对象的大小(也不是它的实际 类型)。该信息(如果需要)必须以其他方式明确包含。<​​/p>

尽量不要在 C++ 中首先使用 void*

关于c++ - 如何从 flatbuffers 中获取 union 结构的 void* 值反序列化的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449984/

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