0

例如,这个方法:

memcpy(pVoid, MyStructArray, sizeof(MyStructArray)); 

这曾经很好,因为我在实例化时调用了这个方法一次,其中数组是预定义的大小。但是,有必要动态更改“数组”中的信息,所以我改用向量。向量中的信息是否保证是连续的?

我可以做类似的事情吗

 memcpy(pVoid, &MyStructVector, sizeof(*MyStructVector) * MyStrucVector.size()); 
4

2 回答 2

3

a 中的数据std::vector是连续的。但是你不能像你正在做的那样复制它。但是,您可以这样做:

memcpy(pVoid, &MyStructVector[0], sizeof(MyStructVector[0]) * MyStrucVector.size()); 
于 2012-01-10T16:58:23.137 回答
0

是的 std::vector 是连续的。

您应该&MyStructVector[0]在期望标准 C 样式数组指针的地方使用

于 2012-01-10T16:56:18.867 回答