gpt4 book ai didi

c++ - 运行C++程序时出现"Access violation"错误

转载 作者:太空狗 更新时间:2023-10-29 23:47:43 24 4
gpt4 key购买 nike

我不断收到以下错误:

Unhandled exception at 0x5a6fca58 (msvcr100d.dll) in Gofish.exe: 0xC0000005: Access violation writing location 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;
}

我使用的编译器是 Microsoft Visual C++ 2010 Express,如果这可能会产生任何影响的话。

最佳答案

因为数组是从零开始的。数组中的最高索引是 51,但您正在尝试访问 52。此外,在您的实现中,永远不会访问索引 0 处的第一张卡片。

deck [i*4-1]=Card(i, "clubs");

关于c++ - 运行C++程序时出现"Access violation"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com