1

博士が見つけたそのようなエラーについて私ができることはありますか? メモリー?

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() に変更した後、何も変更されず、エラーがまだ存在します。

4

1 に答える 1