C++ 运行时检查失败#2:
下面是到目前为止我的代码。我只是一步一步地做这个,为了一个课堂作业。尽量不给出全部代码,我只是想知道我的代码有什么问题,这样我就可以学会修复它。谢谢你的帮助 我们的目标是创建一个级别的车手,然后获得总圈数,比较它们,并将它们按从第一名到第三名的顺序排列。我已经在一个简单的程序中实现了这一点。现在我正在尝试创建一个类驱动程序数组 到目前为止,这是可行的,它要求输入正确,并给出输出,但在程序结束之前,我得到: 调试错误 运行时检查失败#2-变量“driver”周围的堆栈已损坏 我在这里找到的答案对我的申请都没有意义。在运行程序之前运行生成时,我没有失败 我也知道不要使用单字符变量,我只是在了解我缺少什么并在以后更改它们时这样做C++ 运行时检查失败#2:,c++,C++,下面是到目前为止我的代码。我只是一步一步地做这个,为了一个课堂作业。尽量不给出全部代码,我只是想知道我的代码有什么问题,这样我就可以学会修复它。谢谢你的帮助 我们的目标是创建一个级别的车手,然后获得总圈数,比较它们,并将它们按从第一名到第三名的顺序排列。我已经在一个简单的程序中实现了这一点。现在我正在尝试创建一个类驱动程序数组 到目前为止,这是可行的,它要求输入正确,并给出输出,但在程序结束之前,我得到: 调试错误 运行时检查失败#2-变量“driver”周围的堆栈已损坏 我在这里找到的答案对我
#include <iostream>
#include <string>
using namespace std;
class Driver
{
int carNumber;
public:
void setNumber(int number)
{
carNumber = number;
}
int getNumber()
{
return carNumber;
}
};
int main()
{
int x;
int i;
Driver driver[3];
for (i = 1; i <= 3; i++)
{
cout << "Enter Driver " << i << "'s car number: ";
cin >> x;
driver[i].setNumber(x);
}
for (i = 1; i <= 3; i++)
cout << "driver " << i << "'s number is " << driver[i].getNumber() << endl;
return 0;
}
#包括
#包括
使用名称空间std;
类驱动程序
{
int卡号;
公众:
无效集合编号(整数编号)
{
卡号=数字;
}
int getNumber()
{
返回卡号;
}
};
int main()
{
int x;
int i;
司机司机[3];
对于(i=1;istart for loop,如下所示,因为我们知道数组存储从位置0到n-1的n个元素
for (i = 0; i <3; i++)
{
cout << "Enter Driver " << i << "'s car number: ";
cin >> x;
driver[i].setNumber(x);
}
for(i=0;i您的数组访问索引错误
数组开始于索引0,而不是1,结束于少于元素数的1。因此,对于驱动程序[3]
的声明,有效的索引是0、1和2,而不是1、2和3。如果索引错误,则写入超过数组末尾,从而导致堆栈损坏
您的写循环应该更像
for (i = 0; i < 3; i++)
{
cout << "Enter Driver " << i << "'s car number: ";
cin >> x;
driver[i].setNumber(x);
}
(i=0;i<3;i++)的
{
真是太感谢了!我想我曾经有过这样的经历,并对它进行了更改,以获得不同的输出。