从 a 返回指向std::map::find
数据的指针并使用它而不是获取数据的副本是否危险?
目前,我得到一个指向我的地图条目的指针,并将其传递给另一个函数以显示数据。我担心项目移动导致指针无效。这是一个合法的担忧吗?
这是我的示例函数:
MyStruct* StructManagementClass::GetStructPtr(int structId)
{
std::map<int, MyStruct>::iterator foundStruct;
foundStruct= myStructList.find(structId);
if (foundStruct== myStructList.end())
{
MyStruct newStruct;
memset(&newStruct, 0, sizeof(MyStruct));
myStructList.structId= structId;
myStructList.insert(pair<int, MyStruct>(structId, newStruct));
foundStruct= myStructList.find(structId);
}
return (MyStruct*) &foundStruct->second;
}