发现内存泄漏,没有办法,只好逐模块试验。最终发现有个类一旦被实例化然后再析构(比如在栈上创建的局部变量)就会产生内存泄漏。看了这个类的构造函数和析构函数,发现根本没有代码(除了构造函数的初始化列表中为几个int型变量赋了初始值)。再看这个类的成员,除了几个int外还有一个std::wstringstream类型的,也就是说我的类包含了一个std::wstringstream的实例。难道std::wstringstream有泄漏??经过一番google后终于真相大白了,
VC8带的STL中的stringstream、fstream等类居然有内存泄漏!!当然微软也提供了解决方案,不过需要修改STL的源码并重新编译
msvcp80.dll 和 msvcr80.dll。懒得搞了,知道不是自己的代码有问题就可以了。以后换STLport算了:)
唉……原来是VC++8的STL有内存泄漏……
最新推荐文章于 2022-12-12 13:43:16 发布
本文描述了一次在使用VC8自带STL时遇到的内存泄漏问题。通过详细排查,最终定位到std::wstringstream存在内存泄漏的情况。文章还提到了微软提供的解决方案,尽管作者并未实施。
2万+

被折叠的 条评论
为什么被折叠?



