2013-11-02 58 views
0

我正在使用Visual Studio for C,在那裏我從一個雙向鏈表中創建一個包含int數據類型(startCountendCount)的節點數組。所以我從d-鏈表中插入節點到這個數組中。然後我試圖通過分區來對其進行分類。 我也得到了以下錯誤:鏈接列表數組傳遞到函數的訪問成員

left of '->startCount' must point to struct union 
expression must have pointer-to-class type 

在while語句下面的代碼:

int PartitionArray(DListNode*** sortArray){ 
........ 
while((*sortArray[left]->startCount - *sortArray[left]->endCount) < (pivot->startCount - pivot->endCount)){ 
left++; 
} 
........ 
} 

where in main I have: 
int main(){ 
DListNode **sortArray; 
PartitionArray(sortArray); 
} 

我不明白我是多麼想通過數組訪問節點的值通過參考傳遞。

回答

1

根據您如何定義數據結構,您可能會以錯誤的方式解引用變量。由於*運算符的優先級較低,您可能需要使用

(*sortArray)[left]->startCount 

(*sortArray[left])->startCount 

(*sortArray)[left].startCount 

(*sortArray[left]).startCount 

,而不是

*sortArray[left]->startCount 
+0

謝謝! 現在我有另一個問題: 當我將sortArray中的元素設置爲指向功能內部節點的指針時,出現段錯誤:int PartitionArray(DListNode *** sortArray){012ist排序數組[1] = curNode; } 我得到了分段錯誤。 – ddwong

+0

似乎sortArray可能尚未初始化。 我需要在調用PartitionArray()之前看到代碼,以瞭解數據結構如何處理。 – Joao

相關問題