我正在使用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);
}


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

最佳答案

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

(*sortArray)[left]->startCount


要么

(*sortArray[left])->startCount


要么

(*sortArray)[left].startCount


要么

(*sortArray[left]).startCount


代替

*sortArray[left]->startCount

09-25 17:46