const string MethodName = {
“ShellSort”,
“BubbleSort”,
“MergeSort”,
“QuickSort”,
“HalfInsertSort”,
“InsertSort”,
“SelectSort”,
“UNKNOWN”
};
然后用_CrtDumpMemoryLeaks()放在主函数第一句,然后报了8个内存泄露。就是这个地方。
各位都是怎么释放呢?
“ShellSort”,
“BubbleSort”,
“MergeSort”,
“QuickSort”,
“HalfInsertSort”,
“InsertSort”,
“SelectSort”,
“UNKNOWN”
};
然后用_CrtDumpMemoryLeaks()放在主函数第一句,然后报了8个内存泄露。就是这个地方。
各位都是怎么释放呢?
解决方案
10
只要你觉得这种不是泄露就不用管它
10
全局对象的构造是在main之前,析构是在main之后,你在主函数里dump,当然会报泄露。
不用管就行,编译器会自动析构的。
不用管就行,编译器会自动析构的。
20
有可能是误报,原因是全局对象析构是在main函数结束之后,而检测的工具只检测到main结束时
20
原因是全局变量的析构函数是在main函数结束之后才执行的,因此假如在全局变量的析构函数里面delete的东西仍然会被 _CrtDumpMemoryLeaks函数当成泄露掉的资源对待。当然本人认为全局变量可以用,但是全局变量的赋值必须在main里面做,释放也是,除非那个全局变量的构造函数没有申请任何内存,所以这也是一个很好的检查方法。
10
不用管他,这种都不是的,误报了