Я работаю над школьным проектом для графиков, и здесь я делаю глубокий поиск по дереву.Изменение значения вектора, вызывающего ошибку seg
void wdigraph::depth_first(int v) const {
static int firstv = -1;
static bool *visited = NULL;
if (firstv == -1) {
firstv = v;
vector<bool> visited(size);
for (int i = 0; i < size; i++) {
visited[i] = false;
cout << visited[i] << endl;
}
}
cout << label[v];
visited[v] = true;
// посещаемые [0] = TRUE;
Первое входное значение функции равно 0 (v = 0), и с ней происходит сбой. size = 5. Как вы можете видеть в конце кода, я попытался установить посещенное значение true вручную с той же самой ошибкой seg. Когда я удаляю все попытки изменения посещения, программа работает так, как обычно, без сбоя seg.
Любые идеи, почему это невозможно изменить? Кроме того, есть больше кода, но я решил не предоставлять его, если это необходимо.