我是协议缓冲区的新手。所以,我正在尝试为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;
}
谢谢
答案 0 :(得分:0)
我得到了解决方案。 memset函数正在创建此问题。 我删除了memset功能。它工作正常