Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.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++ 所有My变量的运行时检查失败#2错误_C++_C_Visual Studio - Fatal编程技术网

C++ 所有My变量的运行时检查失败#2错误

C++ 所有My变量的运行时检查失败#2错误,c++,c,visual-studio,C++,C,Visual Studio,我的程序运行正常,但在我选择退出后,它给了我“运行时检查失败#2-变量'col'周围的堆栈已损坏”。我想它还说了我所有的变量 我想知道的是我怎样才能修复正在发生的一切 我的主要意见是: int main() { int row, col; double revenue = 0; char choice; char seats[MAX_ROWS][MAX_COLS]; int tickets_sold = 0; double prices[

我的程序运行正常,但在我选择退出后,它给了我“运行时检查失败#2-变量'col'周围的堆栈已损坏”。我想它还说了我所有的变量

我想知道的是我怎样才能修复正在发生的一切

我的主要意见是:

    int main()
{
    int row, col;
    double revenue = 0;
    char choice;
    char seats[MAX_ROWS][MAX_COLS];
    int tickets_sold = 0;

    double prices[MAX_ROWS] = { 40, 40, 35, 35, 35, 30, 30, 25, 25, 25, 12.5, 12.5, 12.5, 9.5, 9.5 };

    for (int rows = 0; rows < MAX_COLS; rows++)
    {
        for (int cols = 0; cols < MAX_COLS; cols++)
        {
            seats[rows][cols] = '*';
        }
    }

    do
    {
        menu();
        cin >> choice;

        if (choice == '1')
            display(seats, tickets_sold, revenue);

        else if (choice == '2')
        {
            do
            {
                cout << "\nEnter row number: " << endl;
                cin >> row;
                cin.clear();
                cin.ignore();

                cout << "Enter column number: " << endl;
                cin >> col;
                cin.clear();
                cin.ignore();

                if (row < MIN_ROWS || row > MAX_ROWS || col < MIN_COLS || col > MAX_COLS)
                    cout << "\nRow number must be between 0 and 14 and Column number must be between 0 and 19." << endl;
                else if (seats[row][col] != '*')
                    cout << "\nSeat is currently unavailable." << endl;
            } while (row < MIN_ROWS || row > MAX_ROWS || col < MIN_COLS || col > MAX_COLS || seats[row][col] != '*');

            seats[row][col] = '#';
            revenue += prices[row];

            tickets_sold++;
        }

        else if (choice == 'q')
            cout << "\nQuiting the program..." << endl;

        else
            cout << "\nInvalid selection." << endl;
    } while (choice != 'q');


    system("PAUSE");
    return 0;
}
intmain()
{
int row,col;
双倍收入=0;
字符选择;
char座位[最多排][最多排];
已售出的整数票=0;
双倍价格[最大行数]={40,40,35,35,30,30,25,25,12.5,12.5,12.5,9.5,9.5};
对于(int rows=0;rows>选择;
如果(选项='1')
展示(座位、售出的门票、收入);
else if(选项='2')
{
做
{
库特街;
cin.clear();
cin.ignore();
cout col;
cin.clear();
cin.ignore();
如果(行MAX|u行|列MAX|列)
cout这只是“堆栈溢出”问题。您编写了一些超出局部变量范围的数据。
通常,您应该首先检查本地阵列上的操作

在这种情况下,阵列的初始化有一个问题:

for (int rows = 0; rows < MAX_COLS; rows++)
{
    for (int cols = 0; cols < MAX_COLS; cols++)
    {
        seats[rows][cols] = '*';
    }
}
for(int rows=0;rows
行和列由相同的宏MAX\u COLS初始化。显然MAX\u COLS大于MAX\u rows。

这只是“堆栈溢出”问题。您写入了一些超出局部变量范围的数据。 通常,您应该首先检查本地阵列上的操作

在这种情况下,阵列的初始化有一个问题:

for (int rows = 0; rows < MAX_COLS; rows++)
{
    for (int cols = 0; cols < MAX_COLS; cols++)
    {
        seats[rows][cols] = '*';
    }
}
for(int rows=0;rows

行和列由相同的宏MAX_COLS初始化。显然MAX_COLS大于MAX_rows。

您是否有可能在边缘周围保留一个座位(row=MAX_rows或col=MAX_COLS)?这是错误的:
if(rowMAX| rows | col
应该是
if(行<min行>行>最大值行>MyCyss*COL=>Max Culs)< <代码> >由于您分配了<代码> char阀座[Max SROUL] [Max Cals];和C++使用了0个基于索引的意思是阀座[Max Sale] [Max Culs]是越界的。我试着把它改为> =,而您的WHER()具有相同的问题<代码>(rowMAX_ROWS | colMAX_COLS | seats[row][col]!=“*”)
谢谢,它没有解决我想要的问题,但它解决了我不知道的一个问题!您是否有可能在边缘(row=MAX_ROWS或col=MAX_COLS)预留了一个座位?这是错误的:
如果(行<min行>列>MyCulsS.C.Cal> Max Culs)< /C> >(行<min行>行= Max Culs*COL==Max LoCs)< /代码>,因为您分配了<代码> char阀座[Max SROUL] [Max Cals];< /Cord>和C++使用0个基于索引的意思是阀座[Max Sale] [Max Culs]超出范围。我尝试将其更改为>=并且您的while()在while(rowMAX_ROWS | | colMAX_COLS | | seats[row][col col]!=“*”)
谢谢,它没有解决我想要的问题,但它解决了一个我不知道的问题!谢谢!这解决了问题!我不敢相信我没有看到--这对我来说是一个可怕的检查错误。谢谢!这解决了问题!我不敢相信我没有看到--这对我来说是一个可怕的检查错误。