[英]I get a debuggging assertion failed Line 1662
你們能告訴我為什么會出現此錯誤嗎?
調試斷言失敗! 程序:C:\\ Widnows \\ system32 \\ MSVCP100D.dll文件:c:\\ program files(x86)\\ microsoft visual studio 11.0 \\ vc \\ include \\ xstring行:1662
表達式:字符串下標超出范圍
有關程序如何導致斷言失敗的更多信息,請參見有關斷言的直觀c ++文檔。
這是我發現導致問題的代碼。 我的測試用例的學生是30個字符。 大小也為10。
for (count = 0; count < size; count++)
{
answers[count] = student[11 + (2*count)];
}
用以下方法制作了尺寸
string examSize;
fstream questionNumber;
questionNumber.open("answers.txt", ios ::in);
getline(questionNumber, examSize);
int size = stoi(examSize);
我用以下方法創建了答案。
vector<char> answers(size,' ');
我創建了一個帶有字符串的學生,它被一個getline函數占用。
getline(studentAnswers, student);
你們還可以告訴我,是否有辦法讓我在此代碼中使用更多的指針?
for (count = 0; count < size; count++)
{
cout << student[11 + count];
}
正如注釋所建議的那樣,“字符串下標超出范圍”表示您正在嘗試訪問不屬於學生對象的內存元素。 您說您已將學生[11]的呼叫限制為學生[20]。 您確定這在范圍內嗎? 嘗試在過程的每個階段,更改變量值的語句之前和之后以及每次循環時打印變量,以查看數據是否符合您的預期。
我不確定您要對此循環執行什么操作,但是也許首先從student數組中提取所需的數據,然后將其分配給答案數組會更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.