首先,我是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
关于我正在做什么的任何想法会导致这个?
答案 0 :(得分:1)
正如伊戈尔建议的那样,你正在破坏堆积。可能在执行
ConfigDefFile :: ConfigDefFile(const char * dir_path,const char * file_name);