我正在使用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);
}
我不明白我应该如何通过引用传递的数组访问节点的值。
最佳答案
根据定义数据结构的方式,您可能会以错误的方式取消引用变量。由于*运算符的优先级较低,因此您可能需要使用
(*sortArray)[left]->startCount
要么
(*sortArray[left])->startCount
要么
(*sortArray)[left].startCount
要么
(*sortArray[left]).startCount
代替
*sortArray[left]->startCount