- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个教程,以在更新版本的 Windows 8.1 上使用最新版本的 Visual Studio Community 2017 学习 C++。
当我调整以下 .cpp 文件并运行程序时,它在输入错误信息后崩溃了:
Debug Assertion Failed!
Program C:\WINDOWS\SYSTEM32\MSVCP140D.dll File c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.11.25503\include\xstringLine: 2969
Expression string subscript out of range
#include "stdafx.h"
#include "FBullCowGame.h"
using int32 = int;
FBullCowGame::FBullCowGame() { Reset(); }
int32 FBullCowGame::GetMaxTries() const { return MyMaxTries; }
int32 FBullCowGame::GetCurrentTry() const { return MyCurrentTry; }
void FBullCowGame::Reset()
{
constexpr int32 MAX_TRIES = 8;
MyMaxTries = MAX_TRIES;
const FString HIDDEN_WORD = "ant";
MyHiddenWord = HIDDEN_WORD;
MyCurrentTry = 1;
return;
}
bool FBullCowGame::IsGameWon () const { return false; }
bool FBullCowGame::CheckGuessValidity(FString)
{
return false;
}
// Receives a VALID guess, increments turn, and returns count
FBullCowCount FBullCowGame::SubmitGuess(FString Guess)
{
// incriment the turn number
MyCurrentTry++;
// setup a return variable
FBullCowCount BullCowCount;
// loop through all letters in the guess
int32 HiddenWordLength = MyHiddenWord.length();
for (int32 i = 0; i < Guess.length(); i++) {
// compare letters against the hidden word
for (int32 j = 0; j < HiddenWordLength; j++) {
// if they match then
if (Guess[j] == MyHiddenWord[i]) {
if (i == j) { // if they're in the same place
BullCowCount.Bulls++; // incriment bulls
}
else {
BullCowCount.Cows++; // must be a cow
}
}
}
}
return BullCowCount;
}
当调试时,它把我带到 xstring 中引用的行,它给出了以下错误:
Unhandled exception at 0x1005E5F6 (ucrtbased.dll) in BullCowGame.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.
代码:
reference operator[](const size_type _Off)
{ // subscript mutable sequence
auto& _My_data = this->_Get_data();
_IDL_VERIFY(_Off <= _My_data._Mysize, "string subscript out of range");
return (_My_data._Myptr()[_Off]);
}
我做的事情似乎触发了断点,但代码反射(reflect)了教程中的代码,并且教程代码可以正确编译和运行。
有人知道怎么处理吗?我在搜索时一无所获。
最佳答案
这看起来很可疑:
for (int32 i = 0; i < Guess.length(); i++) {
// compare letters against the hidden word
for (int32 j = 0; j < HiddenWordLength; j++) {
...
注意,i 受猜测长度的限制,j 受 HiddenWord 长度的限制。
请注意,您在这里混淆了索引变量:
// if they match then
if (Guess[j] == MyHiddenWord[i]) {
此外,无论如何您都应该查看这一行,因为异常出现在运算符 [] 中,这是您发布的代码中唯一使用相关运算符的地方...:)
关于c++ - xstring 在 0x1005E5F6 (ucrtbased.dll) 抛出未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46081928/
我想将字符串转换为 xstring。我知道有一个名为“SCMS_STRING_TO_XSTRING”的功能模块 但是由于不再使用功能模块不是一个好习惯,因此基于类的解决方案将是我的首选方式。 我知道有
所以我几乎完成了这项作业,但现在我又遇到了困难。当我尝试从问题类中绘制文本时,我从 xstring 中得到无效的空指针。我有大约 2 个小时的时间,所以非常感谢您的帮助 这是问题类: class Qu
当我在 visual studio 上调试时它会运行但是当我运行 .exe 时我收到以下错误: c:\program files (x86)\microsoft visual studio 10.0\
我正在编写一个教程,以在更新版本的 Windows 8.1 上使用最新版本的 Visual Studio Community 2017 学习 C++。 当我调整以下 .cpp 文件并运行程序时,它在输
我目前遇到一个问题,当我运行我的代码时,它会在 xstring 系统文件中的第 3467 行异常处停止。这是它的一些屏幕截图: . 我认为它必须与加载文件或文件损坏有关。它的解析方式有问题。这是我的
我见过以下 #include 指令: #include #include #include #include 这些包含指令之间有什么区别?我是否错过了其他应该被视为该小组成员的人? 最佳答案
我在 Windows 8.1 上使用 Visual Studio 2013,并安装了 OpenCV。我已经复制并构建了示例 hoghCircles() 代码,但在 xstring 的“第 1168 行
我是一名优秀的程序员,十分优秀!