Google协议缓冲区总是抛出错误的分配异常

时间:2017-04-16 09:23:57

标签: c++ exception protocol-buffers bad-alloc

我是google协议缓冲区中的新手。现在我有一个问题如下:

我在testMessage.proto文件中创建了一条简单的消息:

option optimize_for = SPEED;

message TestMessage
{
    optional string foo  = 1;
    optional string bar = 2;
}

然后我将此消息生成到testMessage.pb.h和testMessage.pb.cc文件并包含这些文件,还将libprotobuf库添加到我的测试项目中。 然后我写了一个简单的代码来使用这个类:

TestMessage testMsg; 
testMsg.set_foo("1234"); // set ok
testMsg.set_bar("abcd"); // set ok 
string output; 
try {   
    std::cout << testMsg.foo() << std::endl; // output foo ok
    testMsg.PrintDebugString();  // throw bad allocation exception here
    // testMsg.SerializeToString(&output); // also throw bad allocation exception here
 } catch (std::exception ex) {  
     std::cout << ex.what() << std::endl; 
 }

这段代码非常简单,但我无法理解为什么它无法正常运行。 我搜索了我的问题,但没有提到它。 每个人都可以帮我解决这个问题。

0 个答案:

没有答案