类对象的运行时检查失败 #2
run-time check failure #2 for class object
处理一个项目,当我将返回值传递给 main 函数时,它返回的错误我也找不到答案,当我退出控制台时它返回值,但是当输入返回 main 时,它会抛出这些错误
'poker.exe' (Win32):加载了'C:\Users\Daniel\Documents\Visual Studio 2013\Projects\Project4\Debug\poker.exe'。已加载符号。
'poker.exe' (Win32): 已加载 'C:\Windows\SysWOW64tdll.dll'。找不到或打开 PDB 文件。
'poker.exe' (Win32): 已加载 'C:\Windows\SysWOW64\kernel32.dll'。找不到或打开 PDB 文件。
'poker.exe' (Win32): 加载 'C:\Windows\SysWOW64\KernelBase.dll'.找不到或打开 PDB 文件。'poker.exe' (Win32): 已加载 'C:\Windows\SysWOW64\msvcp120d.dll'.找不到或打开 PDB 文件。
'poker.exe' (Win32): 已加载 'C:\Windows\SysWOW64\msvcr120d.dll'。找不到或打开 PDB 文件。
运行时检查失败 #2 - 变量"de"周围的堆栈已损坏。
程序 '[5440] 扑克.exe' 已退出,代码为 0 (0x0)。
主要是我不明白的运行时检查失败,因为我被告知 PDB 文件无关紧要,但我不知道我是否应该担心错误以及我是否应该如何修复它
由于代码很长,我将其放入粘贴箱 http://pastebin.com/nrGBVyuj
好吧,"损坏的内存"通常意味着缓冲区溢出,你知道什么,你在这里有一个:
class Deck
{
private:
int deck[52];
int cardsInDeck = 52;
public:
Deck(){
int nsetUpCounter = 0;
cout << "setting up the deck one moment" << endl;
while (nsetUpCounter <= 53){
deck[nsetUpCounter] = 1;
您正在写信给不存在的deck[52]
和deck[53]
,丢弃其他对象。 幸运的是,调试版本抓住了你,所以你可以修复你的错误。
- libprotobuf 检查在 Mac OS 上执行程序时失败
- 运行时检查失败 #2 变量"A"周围的堆栈已损坏
- 运行时检查失败 #0 用于运行时重新编译
- 运行时检查失败 #2 - 变量"e"周围的堆栈已损坏。发生
- 运行时检查失败 #2 MSVC 仅使用 utf8proc 进行调试
- std::copy 导致运行时检查失败 #2
- 运行时检查失败 #2 - 变量周围的堆栈'...'已损坏
- 运行时检查失败 #2 - 变量"l1"周围的堆栈已损坏
- C ++回测问题:如何检查构造函数在假定失败时是否失败(给定输入的无效参数)
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 运行时检查失败 - 变量周围的堆栈已损坏
- 类型检查的编译时失败
- 调试:运行时检查失败 #2 - 变量"LoggerThread"周围的堆栈已损坏
- 运行时检查失败 #2 - 变量周围的堆栈'k'已损坏
- 建筑物提升失败检查子模块/上下文
- 运行时检查失败 #2 - 变量"数字选择"周围的堆栈已损坏
- GDB在断点检查条件时失败
- 写一个概念检查库,但在所有筹款算术类型上都失败了
- 检查日志文件以找出 vcredist.exe 安装失败的原因
- 检查 istream::read 和 istream::seekg 失败的最佳方法