获取分段错误,用于在 protobuffer 的 C++ 中实现 ByteSize()

Getting Segmentation fault for implementing ByteSize() in C++ for protobuffer

本文关键字:C++ 实现 ByteSize protobuffer 错误 分段 用于 获取      更新时间:2023-10-16

我是协议缓冲区的新手。因此,我正在尝试为protocol-buffer3实现一个小的c ++代码。在我的协议缓冲区中,我只有一个变量

int32 val = 1;

在C++代码中,当我使用Bytesize()函数知道总大小时,但此应用程序一直收到segmentation fault

代码是test.proto

syntax = "proto3"
message testmsg {
    int32 val = 1;
}
//cpp codes
main(){
    testmsg test1;
    memset(&test1, 0, sizeof(testmsg));
    test1.set_val(1);                   // works fine
    cout<<test1.val()<<endl;            //works fine. Display the result
    int size = test1.ByteSize();        //---> Segmentation faults here
    cout << "size = " <<size;
}

谢谢

我得到了解决方案。memset 函数正在产生此问题。我删除了内存集函数。它工作正常