Jef*_*eff 2 c++ arrays runtime-error visual-studio-2010 access-violation
我一直收到错误:
Gofish.exe中0x5a6fca58(msvcr100d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x0ff3b113.
我正在尝试运行的代码是:
#include <iostream>
#include <string>
#include<Array>
using namespace std;
class Card{
string suit;
int rank;
public:
Card(int a, string b){
rank=a;
suit=b;
}
Card(){}
string getSuit(){
return suit;
}
int getRank(){
return rank;
}
};
class Deck{
Card deck [52];
public:
Deck(){
for(int i=1; i<=13; i++){
deck [i]=Card(i, "spades");
deck [i*2]=Card(i, "hearts");
deck [i*3]=Card(i, "diamonds");
deck [i*4]=Card(i, "clubs");
}
}
void list(){
for(int i=1; i<=52; i++){
cout << deck [i].getRank() << " of " << deck [i].getSuit() << endl;
}
}
};
int main(){
Deck deck=Deck();
deck.list();
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的编译器是Microsoft Visual C++ 2010 Express,如果这可能会影响任何东西.
因为数组是零基础的.您的数组中的最高索引是51,但您尝试访问52.此外,在您的实现中,将永远不会访问索引0处的第一张卡.
deck [i*4-1]=Card(i, "clubs");
Run Code Online (Sandbox Code Playgroud)