传递给函数的链表数组的访问成员

时间:2013-11-02 05:56:29

标签: c arrays pointers

我正在使用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 个答案:

答案 0 :(得分:1)

根据您定义数据结构的方式,您可能会以错误的方式取消引用变量。由于*运算符的优先级较低,因此您可能需要使用

(*sortArray)[left]->startCount 

(*sortArray[left])->startCount 

(*sortArray)[left].startCount 

(*sortArray[left]).startCount 

而不是

*sortArray[left]->startCount