获取Segmentation故障,以便在C ++中为protobuffer实现ByteSize()

时间:2018-04-09 14:42:04

标签: c++ protocol-buffers

我是协议缓冲区的新手。所以,我正在尝试为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;
}

谢谢

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。 memset函数正在创建此问题。 我删除了memset功能。它工作正常