0
私はグラフ用の学校プロジェクトで作業しています。ここでは、ツリーの深さを最初に検索しています。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] =真訪問;
関数の最初の入力値は0(v = 0)で、それとクラッシュします。 size = 5。コードの最後でわかるように、同じsegフォルトでvisitedをtrueに手動で設定しようとしました。訪問者を変更しようとするすべての試行を取り除くと、プログラムは通常どのようにセグメントがないかを実行します。
これは変更できない理由がありますか?また、より多くのコードがありますが、必要がない限り提供しないことに決めました。