我正在寫一個程序,分裂圖,我有一個類 圖和算法類。我計算我的算法類中的分區,並根據分區使用Graph類中的方法分割圖。C++ NULL終止陣列段錯誤
我的代碼如下所示: 在我GraphClass:
void bisectGraph(int *iPartitioning, Graph **Subgraphs, Edge **Separator){
...
// Store separators in an array
Separator = new Edge*[Separators.size()+1]; //Separators is a vector containing the separating edges
if(Separator == NULL)
writeErrorMsg("Error assigning memory.", "Graph::bisectGraph");
for(i=0, SepIter = Separators.begin(); SepIter != Separators.end(); i++, SepIter++)
Separator[i] = *SepIter;
Separator[Separators.size()] = NULL;
}
在我的算法CLAS我這樣稱呼它:
Edge** separators;
Graph** subgraphs;
int somePartitioning;
g->bisectGraph(somePartitioning, subgraphs, separators);
做工精細,到目前爲止,但是當我要工作在我這樣的分離器陣列上:
for(int i=0; separators[i]!=NULL, i++){
...
}
我總是得到一個段故障。 ddd告訴我,在bisectGraph分隔符的結尾包含一些內容。由於我找不到任何其他錯誤,我認爲我有一些概念錯誤?
你從哪裏得到分隔符?這是外部的全球變量嗎? – 2012-07-16 11:49:49
問題似乎在別的地方。你可以放更多的代碼嗎? – Shahbaz 2012-07-16 11:54:56