我有以下一段代码,并且 klocwork 服务器正在抛出存储在 '&pData->Key' 中的动态内存在没有传递参数时丢失。即,如果 argc 不等于 3。
typedef struct
{
std::string Key;
std::string Value;
}KEYVALPAIR;
std::vector<KEYVALPAIR*> gData;
int main(int argc, char** argv)
{
KEYVALPAIR* pData = new KEYVALPAIR;
if(argc == 3)
{
pData->Key = argv[1];
pData->Value = argv[2];
gData.push_back(pData);
}
}
我无法在 if 条件后删除 pData,因为当 if 条件为真时 gData 包含 pData 内存。我可以在 else 条件下删除 pData 吗?