C ++如何删除包含std :: string的结构。 klocwork报告动态内存存储字符串丢失了吗?

时间:2017-08-08 10:12:49

标签: c++ klocwork

我有一段代码,klocwork服务器正在抛出存储在'& pData->中的动态内存;当没有传递参数时,键'丢失。即,如果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,因为如果condition为true,gData包含pData内存。我可以在else条件下删除pData吗?

0 个答案:

没有答案