0

我正在使用 Visual Studio for C,我正在创建一个节点数组,其中包含来自双向链表的 int 数据类型(startCount和)。endCount所以我将一个 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);
}

我不明白我应该如何通过引用传递的数组访问节点的值。

4

1 回答 1

1

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

(*sortArray)[left]->startCount 

或者

(*sortArray[left])->startCount 

或者

(*sortArray)[left].startCount 

或者

(*sortArray[left]).startCount 

代替

*sortArray[left]->startCount
于 2013-11-02T06:05:00.810 回答