Буфер протокола Google всегда выдает исключение неправильного размещения

Я новичок в буфере протокола 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 ответов

Другие вопросы по тегам