例如,这种方法:
memcpy(pVoid, MyStructArray, sizeof(MyStructArray));
这曾经很好,因为我在实例化时调用了这个方法,其中数组是预定义的大小。然而,有必要动态地更改'数组'中的信息,所以我使用的是矢量。向量中的信息是否保证是连续的?
我可以做点什么吗 memcpy(pVoid, &MyStructVector, sizeof(*MyStructVector) * MyStrucVector.size());
答案 0 :(得分:3)
std::vector
中的数据是连续的。但你不能像你一样复制它。但是,你可以这样做:
memcpy(pVoid, &MyStructVector[0], sizeof(MyStructVector[0]) * MyStrucVector.size());
答案 1 :(得分:0)
是的std :: vector是连续的。
你应该使用&MyStructVector[0]
,你期望一个标准的C风格的数组指针