gpt4 book ai didi

c++ - Oracle Solaris Studio 内存泄漏与 cout

转载 作者:行者123 更新时间:2023-11-28 03:37:24 24 4
gpt4 key购买 nike

我正在使用 Oracle Solaris Studio 进行一些内存测试。我刚刚安装了它,并编写了传统的“Hello World”程序以确保一切正常运行。

但是,内存泄漏工具报告说 operator new 泄漏了 40 个字节...

我读到这是带有 MFC(Microsoft 基础类)的旧版 visual studio 中的一个常见问题,但现在我很困惑,因为这在 Oracle 产品中...对吗?

据我了解可以忽略。但是每次打印东西时看到它弹出,这很烦人。

可以做些什么吗?

谢谢。

代码如下:

#include <iostream>

int main(void)
{
std::cout<<"Hello World\n";

return 0;
}

最佳答案

我用 Sun Studio 12 编译并用 TotalView 检查:

确实有一个 40 字节的堆分配没有匹配的释放,由 __rwstd::facet_imp* __rwstd::facet_maker<std::codecvt<char,char,__mbstate_t>>::maker_func( int, const char*, unsigned ) 进行, 由 __rwstd::facet_imp* std::locale::__make_explicit( const std::locale::id& ,bool, int, __rwstd::facet_imp*(*)(int,const char*,unsigned)) const 调用, 由 filebuf::overflow 调用由 filebuf::sync 调用由 operator<< 调用.

请注意 Oracle recommends compiling-library=stlport4除非你需要与基于他们基于 roguewave 的 libCstd 构建的东西的二进制兼容性。使用此选项编译,main() 中没有进行堆分配完全没有。

关于c++ - Oracle Solaris Studio 内存泄漏与 cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10453686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com