int main()
{
map<string,string> x;
x["Haitham"]="000@hotmail.com";
x.clear();
_CrtDumpMemoryLeaks();
return 0;
}
当我测试此程序的内存泄漏时,输出被检测到 内存泄漏!
{152}正常块,位于0x0070ABD8,长度为8个字节。
数据:&lt; 4 p&gt; 34 AB 70 00 00 00 00 00
{151}正常块,位于0x0070AB90,长度为8个字节。
{150}正常块,位于0x0070AB08,长度为72个字节。
数据:&lt;
p
p`p&gt; 60 A9 70 00 60 A9 70 00 60 A9 70 00 01 00 CD CD{145}正常阻塞位于0x00704C40,长度为8个字节。
数据:&lt; ^&gt; E4 FE 5E 00 00 00 00 00
{144}正常阻塞位于0x0070A960,72个字节长。
数据:&lt; p p p> 08 AB 70 00 08 AB 70 00 08 AB 70 00 01 01 CD CD
数据:&lt; p> 18 AB 70 00 00 00 00 00
对象转储完成。
答案 0 :(得分:2)
这个问题是你正在调用过早检查内存泄漏的函数。 map
在您拨打_CrtDumpMemoryLeaks
时尚未销毁。
将您的代码更改为:
int main()
{
{
map<string,string> x;
x["Haitham"]="000@hotmail.com";
x.clear();
}
_CrtDumpMemoryLeaks();
return 0;
}
现在应该显示map
已被删除,因为它是{ }
块的本地。