0

たとえば、このメソッドは次のとおりです。

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

配列が事前定義されたサイズであるインスタンス化でこのメソッドを1回呼び出していたため、これは以前は問題ありませんでした。ただし、「配列」内の情報を動的に変更する必要が生じたため、代わりにベクトルを使用しています。ベクトル内の情報は連続していることが保証されていますか?

私は次のようなことをすることができますか

 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 に答える