我有一个内存泄漏问题,它实际上是从以下结构排列形成:奇怪的内存泄漏
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转储第一个,第三个和第四个元素,但不转储第二个元素(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")
,但不断收到内存泄漏。是的,内存泄漏是静态的,这意味着它不会随着时间的推移而建立,但仍然更好地保持干净的代码。有什么建议么??
错误..我没有看到泄漏..你确定吗? – 2009-11-10 08:41:28
好吧,这就是VS说的,坦率地说,我也没有真正看到泄漏,这就是为什么我用“怪异”这个词 – 2009-11-10 08:43:23