C ++:随机重复分段错误

时间:2013-08-13 06:45:40

标签: c++ segmentation-fault

我在Linux下运行程序时遇到问题( CentOS )。代码没有内存泄漏。程序有时会与"Segmentation fault"崩溃。我已经将控制输出添加到我的代码中,当它崩溃时,程序每次都执行相同的代码(这是正确的,只是从配置文件加载数据,一直没有改变)。如果我再次运行程序,则不会发生崩溃"Segmentation fault"并且程序运行正常。

修改

我的配置文件阅读器。 INIHandler.cpp

从这些图书馆,我致电

IniHandler ini(mapInfoName);

MyStringAnsi mapFileName = ini.ReadString("global", "map_file");
this->mapWidth = ini.ReadInt("global", "map_width");
this->minX = ini.ReadFloat("global", "minX");

编辑2

上面的代码没问题。我发现,这个错误发生在这段代码的某处:

std::vector<MyStringAnsi> inputFiles;
MyStringAnsi mapFile = "";
MyStringAnsi output = "";
MyStringAnsi coordinatesDataFileName = "";
MyStringAnsi outputCache = "";
MyStringAnsi type = "data";

for (int i = 1; i < argc; i++)
{
    if ((argv[i][0] == '-') && (argv[i][1] == 'm'))
    {
        mapFile = argv[i + 1];
    }

    if ((argv[i][0] == '-') && (argv[i][1] == 'd'))
    {
        inputFiles.push_back(argv[i + 1]);
    }

    if ((argv[i][0] == '-') && (argv[i][1] == 'o'))
    {
        output = argv[i + 1];
    }

    if ((argv[i][0] == '-') && (argv[i][1] == 'f'))
    {
        coordinatesDataFileName = argv[i + 1];
    }

    if ((argv[i][0] == '-') && (argv[i][1] == 'c'))
    {
        outputCache = argv[i + 1];
    }

    if ((argv[i][0] == '-') && (argv[i][1] == 't'))
    {
        type = argv[i + 1];
    }
}

0 个答案:

没有答案