首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在google原型中编码和解码矢量

如何在google原型中编码和解码矢量
EN

Stack Overflow用户
提问于 2022-05-18 07:03:16
回答 1查看 44关注 0票数 0

我在main.cpp中有以下结构

代码语言:javascript
复制
typedef struct s1
{
    uint8 plmn[3];
}tai_s;

typedef struct s2
{
    tai_s tai;
}tailist_s;

std::vector<tailist_s> tallist;

我在main.proto中有折叠结构

代码语言:javascript
复制
message tai_s
{
    google.protobuf.BytesValue plmn[3];
}

message tailist_s
{
    tai_s tai;
}

repeated tailist_s tallist;

我试图像下面这样对原型进行编码,

代码语言:javascript
复制
for(int i1=0; i1<tailist.size(); i1++)
{
    const tailist_s *tailistproto = proto->add_tailist();

    tailistproto->mutable_tai()->mutable_plmn()->set_value(tailist.tai.plmn, 3);
}

我试图像下面这样解码原型机,

代码语言:javascript
复制
for(int i1=0; i1<proto->tailist_size(); i1++)
{
   mempy(tailist.tai.plmn, proto->tailist(i1).tai().plmn().value(), 3);
}

但它在记忆过程中会产生分割错误。请告诉我我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-18 09:33:45

代码语言:javascript
复制
for(int i1=0; i1<proto->tailist_size(); i1++)
{
   mempy(tailist.tai.plmn, proto->tailist(i1).tai().plmn().value(), 3);
}

你在试图解码一个向量。那个向量在哪里?你在哪里创建你想要写的裁缝?您不会在每次迭代中将尾列表添加到向量并覆盖它。

应该是这样的:

代码语言:javascript
复制
std::vector<tailist_s> tallist(proto->tailist_size());
for(int i1=0; i1<proto->tailist_size(); i1++)
{
    mempy(&tallist[i1].tai.plmn, proto->tailist(i1).tai().plmn().value(), 3);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72284547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档