在C++程序中找不到逻辑错误

Som*_*ody 1 c++ compiler-construction

我正在制作一个时间表生成器作为项目.

代码的一部分似乎有逻辑错误.

void _tmain(int argc, _TCHAR* argv[])
{
    int time=4;
    int classes=2;
    int teacher=4;
    const int column=4;     
    const int rows=8;           
    int table[rows][column];
    int final_table[rows][column];
    int cell;
    int temp=time;
    int temp2=classes;
    int temp3=teacher;
    int cell_reset=111;
    int cell_temp;
    int k=0;
    int selector_temp=0;
    int selector_temp2=0;

    cell=111;

    //array initilization loop
    for(int i=0;i<rows;i++)
    {
        for(int j=0;j<rows;j++)
        {
            table[i][j]=-1;
        }
    }

    for(int i=0;i<rows;i++)
    {
        for(int j=0;j<rows;j++)
        {
            final_table[i][j]=-1;
        }
    }

    //Number generator loop
    for(int i=0;i<rows;)
    {
        while(k<classes)
        {
            for(int j=0;j<column;j++)
            {
                table[i][j]=cell;
                cell++;
            }
            cell=cell_reset+10;
            k++;
            i++;
        }
        k=0;
        cell=cell_reset+100;
        cell_reset=cell;
    }

    //selector loop 
    int counter=0;
    for(int i=0;i<rows;i++)
    {
        counter=0;
        for(int j=0;j<column&&counter<1;j++)
        {
            if(table[i][j]==selector_temp+10)
            {
                table[i][j]=-1;
            }
            if(table[i][j]==selector_temp-10)
            {
                table[i][j]=-1;
            }
            if(table[i][j]!=-1)
            {
                selector_temp=table[i][j];
                final_table[i][j]=table[i][j];
                for(int gg=(j+1);gg<column;gg++)
                {
                    table[i][gg]=-1;
                }
                selector_temp2=selector_temp;
                while(k<time)
                {
                    selector_temp2+=100;
                    for(int ii=0;ii<rows;ii++)
                    {
                        for(int jj=0;jj<column;jj++)
                        {
                            if(table[ii][jj]==selector_temp2)
                            {
                                table[ii][jj]=-1;
                            }
                        }
                    }
                    k++;
                }
                k=0;
                counter++;
            }

        }
    }

//display loop
        for(int i=0;i<rows;i++)
        {
        for(int j=0;j<column;j++)
        {
            cout<<final_table[i][j];
            cout<<" ";
        }
        cout<<endl;
        }
}//end of main bracket
Run Code Online (Sandbox Code Playgroud)

这段代码完全符合我的要求.

但是当我尝试运行此代码时,编译器会给出错误

变量表周围的堆栈已损坏.

我选择忽略此错误,然后程序给我正确的结果.

我试图找到这个错误的来源,但我不能在最重要的是我得到正确的结果,所以如果无法找到我怎么能禁用编译器给我的提示.

Dou*_*der 5

两个初始化循环是错误的 - 内循环应该有 j<column