Protocol Buffer处理嵌套message
对于复杂结构(嵌套message)
set_allocated_xx
函数使用的必须是外部分配(堆)的变量,不能传递stack变量,否则会产生delete
stack错误;传递堆变量后该变量由protobuf管理- 一般使用
mutable_xx
函数,该函数内部开辟堆内存空间返回一个指针,通过该指针对message数据进行操作。
代码:
sm3::m_login_toc msg_toc;
sm3::m_permission *per = msg_toc.mutable_per();
之后调用set或add之类的方法就OK了