以下代码合不合法?如果合法总结构体占多少字节
#include
#include
struct MyStruct {
int id;
std::vector<int> values;
};
int main() {
std::cout << "Size of MyStruct: " << sizeof(MyStruct) << std::endl;
return 0;
}
1、合法
2、std::vector通常包含三个指针:一个指向数组的开始,一个指向数组的结束,还有一个指向数组的末尾(也就是分配的但还未使用的空间的开始)
3、std::vector的元素是在堆上分配的
4、std::vector对象本身的内存和std::vector所存储的元素的内存是分开的
5、std::vector对象本身的内存是在它被声明的地方分配的