(1)报错如下😱😱😱:
free(): invalid size
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
(2)分析🐯🐯🐯:
protobuf中,简单的消息内容直接用set_来赋值就可以。对复杂嵌套消息内容赋值的方式有set_allocated_和mutable_两种,但是二者的赋值方式是不一样的。使用set_allocated_,需要new出对象,由于保存的是对象的指针,所以不能用局部的对象。当局部的对象被销毁后的时候,就会出现错误。使用mutable_赋值,可以使用局部变量。因为内部做了相应的new操作。
总结:简单赋值用set即可。复杂赋值慎用set_allocated_,可以用mutable_。
(3)举例💉💉💉