C ++, как удалить структуру, которая содержит std :: string. klocwork сообщает, что динамическая память, сохраненная строка, потеряна?

У меня есть следующий кусок кода, и сервер 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);
}
}

Я не могу удалить pData после условия if, потому что gData содержит память pData, если условие true. Могу ли я удалить pData в другом состоянии?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]