0

可能重复:
异常代码 C++ 中的泄漏

我在一些代码上运行了 valgrind(如下),我对它的输出感到困惑,它声称我有一个小的内存泄漏。这是输出;我找不到问题。

编码:

121         std::cerr << "exp "<<i<<" ";
122         exp->print(std::cerr);
123         std::cerr << std::endl;

输出:

==27313== 16 bytes in 1 blocks are definitely lost in loss record 1 of 6
==27313==    at 0x1000525CF: malloc (vg_replace_malloc.c:266)
==27313==    by 0x1000A90CF: __cxa_get_globals (in /usr/lib/libstdc++.6.0.9.dylib)
==27313==    by 0x1000A8EA9: std::uncaught_exception() (in /usr/lib/libstdc++.6.0.9.dylib)
==27313==    by 0x100088096: std::ostream::sentry::~sentry() (in /usr/lib/libstdc++.6.0.9.dylib)
==27313==    by 0x100088BF9: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char
> >&, char const*, long) (in /usr/lib/libstdc++.6.0.9.dylib)
==27313==    by 0x100088C57: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char 
const*) (in /usr/lib/libstdc++.6.0.9.dylib)
==27313==    by 0x1000028C4: test() (foo.cpp:121)
==27313==    by 0x100002D92: main (foo.cpp:35)

请注意,调用 exp->print 只是做更多相同的事情;我打印了一些穿插字符串常量的值。

4

0 回答 0