int main()
{
map<string,string> x;
x["Haitham"]="000@hotmail.com";
x.clear();
_CrtDumpMemoryLeaks();
return 0;
}当我测试这个程序的内存泄漏时,输出被检测到内存泄漏! {152}正常块在0x0070ABD8,8字节长。 资料来源:<4 p> 34 AB 70 00 00 00 {151}位于0x0070AB90的普通块,8字节长。 {150}位于0x0070AB08的普通块,72字节长。 资料来源:<
pp‘p> 60 A9 70 00 60 A9 70 00 60 A9 70 0001 00 CD {145}位于0x00704C40的普通块,长度为8字节。 资料来源:<^> E4 FE 5e0000000000 {144}正常块在0x0070A960,72字节长。 资料来源: 08 AB 70 00 08 AB 70 00 08 AB 70 00 01 01 CD 资料来源: 18 AB 70 00 00 00 对象转储完成。
发布于 2014-11-17 19:31:27
这个问题是,您调用检查内存泄漏的函数太快了。map还没有在你称之为_CrtDumpMemoryLeaks的时候被摧毁。
将代码更改为:
int main()
{
{
map<string,string> x;
x["Haitham"]="000@hotmail.com";
x.clear();
}
_CrtDumpMemoryLeaks();
return 0;
}这现在应该显示map已被取消,因为它是本地的{ }块。
https://stackoverflow.com/questions/26980394
复制相似问题