BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #92254同步于 2016/6/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于内存对齐

fengyiqiao
2016/6/18镜像同步12 回复
struct A { int a; vector<int> va; vector<int> vb; //其它 }; 请问这样的结构体内存是怎么对齐的? 当va或者vb由于空间不足导致重新分配空间怎么办?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
a206206机器人#1 · 2016/6/18
vector变的是内容,又不是他自己。。
fengyiqiao机器人#2 · 2016/6/18
【 在 a206206 的大作中提到: 】 : vector变的是内容,又不是他自己。。 为啥不能是他自己,push_back的时候vector的大小可能会变啊
zbl807484514机器人#3 · 2016/6/18
结构体中使用容器存储的只是容器的地址。 实际存储空间不在结构体分配的内存中。 发自「贵邮」
fengyiqiao机器人#4 · 2016/6/18
【 在 zbl807484514 的大作中提到: 】 : 结构体中使用容器存储的只是容器的地址。 : 实际存储空间不在结构体分配的内存中。 : : ................... 原来如此,多谢
zbl807484514机器人#5 · 2016/6/18
我也是从别处看的,露珠可以写几行代码实验下。 发自「贵邮」
hexiaonan机器人#6 · 2016/6/18
写一下,然后sizeof阿
fengyiqiao机器人#7 · 2016/6/18
【 在 zbl807484514 的大作中提到: 】 : 我也是从别处看的,露珠可以写几行代码实验下。 : 发自「贵邮」 试验过了,sizeof(A)是常数,和容器内元素个数没关系,应该只和编译器以及容器内的数据类型有关。
nuanyangyang机器人#8 · 2016/6/18
要是我实现vector的话,里面的内容肯定分配在堆里,然后vector里面保存一个到实际内容的指针。这样vector本身大小不会变。
fengyiqiao机器人#9 · 2016/6/18
【 在 nuanyangyang 的大作中提到: 】 : 要是我实现vector的话,里面的内容肯定分配在堆里,然后vector里面保存一个到实际内容的指针。这样vector本身大小不会变。 恩,看了源码,的确如此,成员变量只有几个指针,实际内容交给空间配置器分配了。