在一个项目上工作,当我将一个返回值传递给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
答案 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]
,其他一些对象无用。幸运的是,调试版本可以帮助您修复错误。