C++ 内存博士发现错误:don';我不知道如何修理它
对于Memory博士发现的这种错误,我能做些什么吗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
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();没有帮助。