Я создаю генератор расписания как проект.
Часть кода, кажется, содержит логическую ошибку.
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
Этот код генерирует именно то, что я хочу.
Но когда я пытаюсь запустить этот код, компилятор выдает мне ошибку, что
Стек вокруг таблицы переменных поврежден.
Я предпочитаю игнорировать эту ошибкуи затем программа выдаст мне правильный результат.
Я попытался найти источник этой ошибки, но не могу, кроме того, получить правильные результаты, поэтому, если не удается найти, как отключитьподскажите что компилятор мне даст.