我有两个结构
struct Edge{
int v1;
int v2;
int weigt;
Edge(int v1_tmp, int v2_tmp, int weight_tmp);
};
struct GraphList{
int V;
int E;
list<Edge>* mylist;
}
GraphList::GraphList(GrafMatrix* graph){
V=graph->V;
E=graph->E;
for (int i=0; i<V; i++){
for (int j=0; j<V; j++){
if (graph->matrix[i][j]==1) mylist[i].push_back( Edge(i+1, j+1, graf->weights[i][j]) );
}
}
}
怎么了? i=0
和j=1
时出现错误。我试过lista = new list<Krawedz>()
,但它不起作用。有什么想法吗?
答案 0 :(得分:2)
您正在取消引用从未分配任何空间的指针。请注意list<Edge>* mylist
。您应该使用new
作为
mylist = new list<Edge>[k]; //declare an array of k list<Edge>.
然后你就可以访问mylist [0],....,mylist [k-1]。