Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 内存博士发现错误:don';我不知道如何修理它_C++_Visual Studio 2008_Memory Leaks_Dr Memory - Fatal编程技术网

C++ 内存博士发现错误:don';我不知道如何修理它

C++ 内存博士发现错误:don';我不知道如何修理它,c++,visual-studio-2008,memory-leaks,dr-memory,C++,Visual Studio 2008,Memory Leaks,Dr Memory,对于Memory博士发现的这种错误,我能做些什么吗 Error #xxx: INVALID HEAP ARGUMENT: allocated with operator new, freed with free std::_DebugHeapDelete<std::locale> ??:0 std::ios_base::_Ios_base_dtor ??:0 std::ios_base::~ios_base ??:0 std::basic_ios<cha

对于Memory博士发现的这种错误,我能做些什么吗

Error #xxx: INVALID HEAP ARGUMENT: allocated with operator new, freed with free
std::_DebugHeapDelete<std::locale>
    ??:0
std::ios_base::_Ios_base_dtor
    ??:0
std::ios_base::~ios_base
    ??:0
std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
    ??:0
std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbase destructor'
    ??:0
some_namespace::some_function()
    some_source.cpp(60):

Note: memory was allocated here:
Note: std::ios_base::_Init
    ??:0
Note: std::basic_ios<char,std::char_traits<char> >::init
    ??:0
Note: std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >
    ??:0
Note: std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >
    ??:0
Note: std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
    ??:0
Note: some_namespace::some_function()
Note:     some_source.cpp(30):

>编译器是VisualStudio 2008 SP1,语言是本地C++。当然,在将.rdbuf()->str()更改为simply.str()之后,没有任何更改,错误仍然存在。

我认为这是Dr.Memory中的一个错误

正如下面代码中所说的“释放0x0bdd3048的堆参数无效”

template<typename CharType>
class MessageBuilder
{
   (...)
          {
            std::basic_ostringstream<CharType> ss;
            ss << msg;
            msg_ += ss.str();
-->       }
};
模板
类消息生成器
{
(...)
{
std::基本流ss;
ss}
};

我认为这是Dr.Memory中的一个bug

正如下面代码中所说的“释放0x0bdd3048的堆参数无效”

template<typename CharType>
class MessageBuilder
{
   (...)
          {
            std::basic_ostringstream<CharType> ss;
            ss << msg;
            msg_ += ss.str();
-->       }
};
模板
类消息生成器
{
(...)
{
std::基本流ss;
ss}
};

当它在ios_base::_Init中时,我会忽略它为什么要使用rdbuf()而不是从流中获取str或将流放入字符串中?这不是我的代码:)。无论如何,更改为:std::string res=ss.str();没有帮助。当它在ios_base::Init中时,我会忽略它为什么要使用rdbuf()而不是从流中获取str或将流放入字符串中?这不是我的代码:)。无论如何,更改为:std::string res=ss.str();没有帮助。