Próbuję użyć biblioteki wykresów doładowania, a otrzymuję błąd segfault, gdy próbuję użyć metody boost :: edge(). Pełny kod jest dostępny here, ale tutaj zrobiłem minimalny program, który ma ten sam problem (jestem kompilacji z „g ++ minimal.cpp”):doładowanie :: krawędź powodująca segfault
#include<stdio.h>
#include<boost/graph/adjacency_list.hpp>
using namespace boost;
using namespace std;
typedef adjacency_list<> graph_t;
typedef graph_traits<graph_t>::edge_descriptor edge_descriptor;
int main(){
graph_t G;
//add_edge(1,3,G);
//remove_edge(1,3,G);
pair<edge_descriptor, bool> res = edge(1,3,G);
printf("G does %shave an edge 1->3\n", res.second ? "" : "not ");
return 0;
}
Gdybym odkomentowaniu add_edge, linie remove_edge , Błąd segfault nie występuje, a program drukuje oczekiwany , ale czy istnieje sposób na uniknięcie takich hakerów? Dzięki!
To wygląda trochę jak robaka. Jeśli nie możesz uzyskać poprawnej odpowiedzi na Stackoverflow, możesz chcieć to zgłosić na [Boost-Devel Mailing List] (http://news.gmane.org/gmane.comp.lib.boost.devel). – Mankarse