Обнаружена ошибка Dr.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):

Где код выглядит так (строки добавлены для удобства):

string some_function( int i, int j, int k )
{
30:  stringstream ss;
(...)
std::string res = ss.str();
(...)
60:  return res;
}

Компилятор VisualStudio 2008 sp1, родной язык c ++. Конечно, после изменения .rdbuf () -> str () на просто .str () — ничего не изменилось, ошибка все еще существует.

1

Решение

Я думаю, что это ошибка в Dr. Memory,

как написано «Недействительный аргумент кучи, чтобы освободить 0x0bdd3048» в следующем коде

template<typename CharType>
class MessageBuilder
{
(...)
{
std::basic_ostringstream<CharType> ss;
ss << msg;
msg_ += ss.str();
-->       }
};
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]