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

标签 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);
}

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

最佳答案

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

(*sortArray)[left]->startCount 

(*sortArray[left])->startCount 

(*sortArray)[left].startCount 

(*sortArray[left]).startCount 

而不是

*sortArray[left]->startCount

关于c - 访问传递给函数的链表数组的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19739387/

相关文章:

c - C中的命名管道(FIFO)读取文件内容

c - 找到两个序列的连接点

c - C中数组的QSORT?

c - sizeof(指针变量)/sizeof(数组第一个元素)的结果始终显示2

c - 在C中为结构指针数组成员分配地址

C中转换为全部大写字母的bug

c - 实现字符串查找方法

JavaScript - 从多个数组创建对象

javascript - 在 Node.js 中使用 Express 渲染数组中的每个对象

c - 删除一行文本文件