Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 运行时检查失败#2:_C++ - Fatal编程技术网

C++ 运行时检查失败#2:

C++ 运行时检查失败#2:,c++,C++,下面是到目前为止我的代码。我只是一步一步地做这个,为了一个课堂作业。尽量不给出全部代码,我只是想知道我的代码有什么问题,这样我就可以学会修复它。谢谢你的帮助 我们的目标是创建一个级别的车手,然后获得总圈数,比较它们,并将它们按从第一名到第三名的顺序排列。我已经在一个简单的程序中实现了这一点。现在我正在尝试创建一个类驱动程序数组 到目前为止,这是可行的,它要求输入正确,并给出输出,但在程序结束之前,我得到: 调试错误 运行时检查失败#2-变量“driver”周围的堆栈已损坏 我在这里找到的答案对我

下面是到目前为止我的代码。我只是一步一步地做这个,为了一个课堂作业。尽量不给出全部代码,我只是想知道我的代码有什么问题,这样我就可以学会修复它。谢谢你的帮助

我们的目标是创建一个级别的车手,然后获得总圈数,比较它们,并将它们按从第一名到第三名的顺序排列。我已经在一个简单的程序中实现了这一点。现在我正在尝试创建一个类驱动程序数组

到目前为止,这是可行的,它要求输入正确,并给出输出,但在程序结束之前,我得到:

调试错误

运行时检查失败#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++)的

{

真是太感谢了!我想我曾经有过这样的经历,并对它进行了更改,以获得不同的输出。