为什么我击中字符串下标超出范围?

时间:2014-12-03 22:14:02

标签: c++ dynamic-programming

我正在尝试使用此功能,我可以调试并将其缩小到名为addrstore的变量。我不知道为什么它会给我这个错误。我已经尝试过变量,设置数字等等但是我似乎无法让它工作而不会让我错误。我能够忽略错误,程序似乎工作正常,但每次运行时,它都会给我错误,“字符串下标超出范围”。

这是代码

void loading(string file){
ifstream object;
BYTE var;
ADDRESS addr;
string input;

object.open(file);
if (!object){
    cout << "ERROR: Could not load " << file << endl;
}
else{
    string line;
    string addrstore;
    cout << "loaded the file " << file << endl;
    while (!object.eof()){
        getline(object, line);
        addr = 0;
        if (line[0] == 'T'){
            for (int x = 1; x < 7; x++){
                addrstore[x - 1] = 0;
                //addrstore[x - 1] = line[x];
            }
            addr = numconvert(addrstore);
        }
        int i = 7;
        while (line.size() != 0 && line[0] == 'T' && i < line.size()){
            input = line[i] + line[i + 1];
            var = numconvert(input);
            PutMem(addr, &var, 0);
            i += 2;
            addr++;
        }
    }
    object.close();
}
}

1 个答案:

答案 0 :(得分:0)

您永远不会初始化变量addrstore并在程序中的任何位置为其指定一些值。这导致了一个问题。

如果没有在其他任何地方为变量赋值,您如何才能访问addrstore[x - 1]