++发现我的代码中的内存泄漏的Visual C,所以我又缩减为简单的测试情况下,我可以和得到这个:字符串导致内存泄漏?
#define _CRTDBG_MAP_ALLOC // required
#include <stdlib.h> // to enable MSVC++
#include <crtdbg.h> // memory leak detection
#include <string>
using namespace std;
int main() {
string foo;
_CrtDumpMemoryLeaks();
return 0;
}
输出:
Detected memory leaks! Dumping objects -> {130} normal block at 0x008748A8, 8 bytes long. Data: B4 F9 44 00 00 00 00 00 Object dump complete.
如果我注释掉“字符串FOO ;”它没有检测到任何东西。
我应该以某种方式重新分配富?
这显然是不可能的,如果您有任何基于堆栈的对象! `_CrtDumpMemoryLeaks()`来自* C *运行时库;它并没有预料到破坏者...... – 2011-01-20 14:42:28
@Oli:不可能如何?锐利示范如何做到这一点。 – 2011-01-20 14:46:01