访问违规写入定位

时间:2016-03-22 22:51:34

标签: c++ access-violation

我无法弄清楚我的代码有什么问题。我使用添加手表来确保正确读取信息并输入到阵列中。我得到的错误是:

  

访问违规写入位置。

yo ./node_modules/some-generator/app

1 个答案:

答案 0 :(得分:1)

首先,你不应该在C ++中循环使用eof。

然后你应该确保numQnumA不会越界,因为它们的值取决于文件内容:

...
while (getline(SaveFile, temp, '#'))
{  
    if (temp.length() > 5)
    {
        if (numQ>=50) 
            cerr << "Ouch ! numQ=" <<numQ<<endl; 
        else arrayQ[numQ] = temp;
        numQ++;
    }
    else
    {
        if (numA>=50) 
            cerr << "Ouch ! numA=" <<numA<<endl; 
        else arrayA[numA] = temp;
        numA++;
    }
}

最后,您可以考虑使用vector<string>而不是字符串数组。在这种情况下,您只需push_back()右矢量中的字符串,而不必担心预定的大小。