Jestem w trakcie pisania kodu w którym przeszukuję graf w szerz w celu znalezienia najkrótszej drogi, ale mam problem ponieważ przy if w zagnieżdżonej pętli for w while wyskakuje mi taki komunikat Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
void zerowanie_tab(int *T,int n)
{
for(int i=0; i<n; i++)
{
T[i] = 0;
}
}
int main()
{
int n,m,x,y,v,u,p;//n-liczba wierzcholkow, m-liczba krawedzi
cin>>n;
cin>>m;
vector <int> tab[n]; //tablica n pustych wektorów
int * L = new int[n]; //tablica która przechowuje, czy wierzcholek byl juz odwiedzony
int * F = new int[n]; //tablica która przechowuje, skąd przysliśmy
queue<int> Q; //kolejka, do której wkładamy sąsiadów aktualnie przetwarzanego wierzchołka.
zerowanie_tab(L, n);
zerowanie_tab(F, n);
for(int i=0;i<m;i++)
{
cin>>x;//pierwszy wierzcho³ek krawêdzi
cin>>y;//drugi wierzcho³ek krawedzi
tab[x].push_back(y); //dodaj krawedz wychodzaca dla wierzcholka
tab[y].push_back(x);
}
cin>>v;
cin>>u;
Q.push(v); L[v] = true;
while(!Q.empty())
{
p = Q.front();
Q.pop();
for(int i=0; i<tab[p].size(); i++)
{
if(!L[tab[p][i]])
{
cout<<tab[p][i];
Q.push(tab[p][i]);
L[tab[p][i]] =true;
F[tab[p][i]] = p;
}
}
}
for(int i=u; i>=v; i--)
{
{
cout<<F[i]<<" ";
}
}
delete [] L;
delete [] F;
return 0;
}