C ++ List Insert Iterator Outside Range

时间:2013-07-16 00:13:21

标签: c++ list class

首先,我是c ++和list的新手,所以它可能很明显,我只是没有看到它,抱歉:(

我正在尝试创建一个文件列表,当我尝试将第一个文件推送到列表时,我遇到了错误。 Debug Assertion Error消息是“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

关于我正在做什么的任何想法会导致这个?

1 个答案:

答案 0 :(得分:1)

正如伊戈尔建议的那样,你正在破坏堆积。可能在执行

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