2013-05-31 243 views
0

的我有兩個結構矩陣列表

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=0j=1時,出現錯誤。我試過lista = new list<Krawedz>()但它不起作用。有任何想法嗎?

回答

2

您正在取消引用從未分配任何空間的指針。通知list<Edge>* mylist。您應該使用new作爲

mylist = new list<Edge>[k]; //declare an array of k list<Edge>. 

然後,你將能夠訪問MYLIST [0],...,MYLIST [K-1]。