struct Property
{
int objID;
const char* objName;
};
struct Data
{
Property propertyRef;
}
std::vector<Data> items;
ここで、次のようにデータを割り当てている関数の1つ
Data d1;
d1.propertyRef.objID = 1;
d1.propertyRef.objName = "MyObj";
//... I am some logic in between and passing this d2 which is mentioned below to another thread in argument
Data d2 = d1;
問題は、印刷d2.propertyRef.objName
するとジャンク値が印刷されることですか?
ここでのポイントは、ライブラリを使用していて、ライブラリを変更して演算子 = をデータに追加できないことです。
この問題に直面している理由と解決方法を教えてください。(私はそれをグーグルで検索し、ディープコピーする必要があると述べましたが、ベクターでそれを行う方法がわかりません.