0

我有以下一段代码,并且 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 吗?

4

0 回答 0