У меня проблема с утечкой памяти, и она фактически генерируется из следующего массива структуры:
TagStruct TagData [] =
{
{ Tag_SecurityToken, string("x-abc-security-token"), string("ab-security-token") } ,
{ Tag_XYZ, string("x-abc-xyz"), string("ab-xyz") },
{ Tag_ChunkCount, string("x-abc-meta-chunk"), string("ab-meta-chunk") },
{ Tag_OriginalFileSize, string("x-abc-meta-totalsize"), string("ab-meta-totalsize")}
};
странная вещь, конечно, проблема утечки памяти, а самая странная проблема заключается в том, что когда я закрываю клиент VS сбрасывает первый, третий и четвертый элементы, но не 2-й элемент (Tag_XYZ). Утечка памяти, похоже, возникает при первом запуске, прежде чем я даже вызываю массив, и помните, что я использую массив только для проверки:
string Get_Tag (Tags tag)
{
return m_ClientType == CType_ABC ? TagData[tag].strABC : TagData[tag].strAB;
}
Вот, собственно, и вся причина этого. Таким образом, нет никакого встроенного выделения кучи / памяти любого вида.
также структура тегов выглядит так:
struct TagStruct
{
Tags tag;
std::string strABC;
std::string strAB;
};
Я также хотел бы сообщить вам, что это глобальный массив, и я также пытался сделать его статическим, но продолжал получать утечку памяти, также я пытался объявить строки в массиве как "str"
, а не string("str")
но продолжали получать утечки памяти. Да, утечка памяти является статической, что означает, что она не создается со временем, но все же лучше сохранять чистый код. Есть предложения ??