SerializeToArray protobuf not storing
SerializeToArray protobuf not storing
我对protobufs非常陌生,并尝试一些简单的串行化和去串行化。
int sizeArray = event0.ByteSize();
QByteArray * qbArray = new QByteArray[sizeArray];
cout << "byteSizeOfEvent0: " << sizeArray << endl;
cout << "preSTA size: " << qbArray->size() << endl;
cout << "is event0 initialized? " << event0.IsInitialized() << endl;
event0.SerializeToArray(qbArray, sizeArray);
cout << "postSTA size: " << qbArray->size() << endl;
产生结果
byteSizeOfEvent0: 48
preSTA size: 0
is event0 initialized? 1
The program has unexpectedly finished.
SerializeToArray之后调用qbArray的过程导致了崩溃,我认为这是由于数据写入失败。该事件已初始化,并且在使用SerializesString和deBugging时显示正确。
我看过其他以同样方式序列化ToArray的帖子。我是不是做错了什么?
感谢您的帮助。谢谢
new QByteArray[sizeArray]
分配一个由sizeArray
空QByteArray
s组成的数组,而不是一个sizeArray
字节长的QByteArray
。如果你想使用QByteArray
,它应该看起来像
int sizeArray = event0.ByteSize();
QByteArray qbArray(sizeArray, 0);
cout << "byteSizeOfEvent0: " << sizeArray << endl;
cout << "preSTA size: " << qbArray.size() << endl;
cout << "is event0 initialized? " << event0.IsInitialized() << endl;
event0.SerializeToArray(qbArray.data(), sizeArray);
cout << "postSTA size: " << qbArray.size() << endl;
然而,请注意,这两个size()
调用都将返回相同的内容,因为qbArray
被初始化为sizeArray
字节长。
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 为什么我会" void value not ignored as it ought to be"?
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- Directx 11 - CompileFromFile() is not compiling
- 方法错误"not all control paths return a value"和方法不返回值
- Centos7 g++ "to_string is not in a member of std"
- 将系数存储在头文件的数组中("does not name a type"错误)
- QGraphicsItems not showing up QGraphicsScene
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- SerializeToArray protobuf not storing