0

まず最初に、私は C++ とリストが初めてなので、それは明らかかもしれません。

ファイルのリストを作成しようとしていますが、最初のファイルをリストにプッシュしようとするとエラーが発生します。デバッグ アサーション エラー メッセージは「list insert iterator outside range」です。

ヘッダーファイルには、次のものがあります。

class ConfigDefFile
{
public:
    ConfigDefFile( const char * dir_path, const char * file_name );

private:
    ConfigDef * config;
    static char filePath[ MAX_PATH + 1 ];
};

typedef list<ConfigDefFile *> ConfigDefFileList;

ConfigDefFileList def_files;

ファイルをリストに追加するための私のコードは次のとおりです。

char * root_path = NULL;
ConfigDefFile * def_file;

root_path = GetDefDir(); //Gets the root directory for the file.

def_file = new ConfigDefFile( root_path, file );

def_files.push_back( def_file ); //error occurs here

私が何をしているのかについてのアイデアは、これを引き起こすでしょうか?

4

1 に答える 1

1

Igor が提案したように、ヒープを破損しています。の実装で可能性が高い

ConfigDefFile::ConfigDefFile( const char * dir_path, const char * file_name );

于 2013-07-16T00:35:50.053 に答える