我正在使用 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
关于c - 访问传递给函数的链表数组的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19739387/