首页 新闻 会员 周边

vector在不同编译器下占用的内存大小不一样

0
[待解决问题]

今天在搞一个项目系统联调才知道,vector在vs2015和vs2018里面的sizeof是不同的。
如果在通信程序里面,收发程序是用不同版本vs编译,那就有点蛋疼了。简单结构的无所谓,自己可以随意拆分,自己开心就行,但是,如果收发的数据结构比较复杂和数据内容比较多,自己拆分起来就比较蛋疼了。
想到的解决方案:
1、统一开发工具及版本。能更好,关键有时候不是一个人开发,且有时使用的库的开发工具也不好改变,不然调试时候不好跟进去调试。所以,有时候是没办法。
2、开头提到的自己随意拆分和组合,看到有个家伙就这么干的,我个人认为这种方式不妥,不然我们定义数据结构干嘛,吃饱了撑的,自己对调试对数据的时候还不疯掉。
3、我采用的方法,数据结构其他部分照样用,只是用之前把容器内容单独提出来,用简单类型替代,发之前把容器内容清空,把单独提出来的部分附加到整个数据包的头或尾。但是,这种方法肯定也不好,没有解决根本问题。现在还不知道怎么处理……

单单线程的主页 单单线程 | 菜鸟二级 | 园豆:202
提问于:2019-05-20 22:48
< >
分享
所有回答(1)
0

vector是stl中模板类,本身和编译器版本就有关。 sizeof直接作用于vector的用法就不符合规范

2012 | 园豆:21230 (高人七级) | 2019-05-21 09:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册