Я работаю над проектом, который представляет собой поезд с N вагонами, которые должны быть реорганизованы в порядке полумесяца. Я использую стеки, чтобы поставить вагоны в ожидание.
Программа останавливается, когда я использую условие доступа к вектору стеков.
pilha *plh[num_trilhos]; // HERE'S THE DECLARATION OF THE VECTOR
if (n != 0)
{
entrada = cria_fila ();
saida = cria_lista ();
for (i = 0; i < num_trilhos; i++)
{
plh[i] = cria_pilha (); HERE'S WHERE I CREATE A STACK FOR EACH POSITION IN THE VECTOR
}
for (i = 0; i < n; i++)
{
id = rand () % n;
/* rep = checa_repetido(entrada, id);
/*
if (rep == 0)
{*/
insere_fila (entrada, id);
/*}
else
id = rand() % n;
*/
}
imprime_fila (entrada);
while (entrada->ini != NULL)
{
if (entrada->ini->id == 1)
{
insere_lista (saida, id);
retira_vagao (entrada);
continue;
}
for (j = 0; j < num_trilhos; j++)
{
if (plh[j]->topo > entrada->ini->id && !pilha_cheia (plh[j])) {
// ВЫШЕ, ГДЕ ОСТАНОВКА ПРОГРАММЫ. Я НЕ МОГУ УЗНАТЬ ПОЧЕМУ ЭТИ УСЛОВИЯ ОСТАНАВЛИВАЮТСЯ В ПРОГРАММУ.
push (plh[j], entrada->ini->id);
retira_vagao (entrada);
break;
}
Вы можете мне помочь?