类对象的运行时检查失败#2

时间:2015-01-31 22:44:59

标签: c++ windows

在一个项目上工作,当我将一个返回值传递给main函数时,它返回的错误我也找不到答案,当我退出控制台时返回值,但是当输入返回main时它抛出这些错误

'poker.exe'(Win32):已加载'C:\ Users \ Daniel \ Documents \ Visual Studio 2013 \ Projects \ Project4 \ Debug \ poker.exe'。符号已加载。

'poker.exe'(Win32):加载'C:\ Windows \ SysWOW64 \ ntdll.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] poker.exe'已退出,代码为0(0x0)。

这主要是运行时检查失败,我不明白,因为我被告知PDB文件无所谓但我不知道我是否应该担心错误,如果我应该怎么做解决它

由于代码很长,我将其放入粘贴箱http://pastebin.com/nrGBVyuj

1 个答案:

答案 0 :(得分:3)

嗯,"内存损坏"通常意味着缓冲区溢出,你知道吗,你在这里有一个:

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],其他一些对象无用。幸运的是,调试版本可以帮助您修复错误。