0

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

我正在尝试创建文件列表,当我尝试将第一个文件推送到列表时遇到错误。调试断言错误消息是“列表插入迭代器超出范围”。

在头文件中,我有:

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 回答