C 访问传递给函数的链表数组的成员
我正在使用visual studio for C,在这里,我从一个双链接列表中创建一个包含int数据类型(C 访问传递给函数的链表数组的成员,c,arrays,pointers,C,Arrays,Pointers,我正在使用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 Partiti
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);
}
int分区数组(DListNode***sortArray){
........
而((*SortAry[left]->startCount-*SortAry[left]->endCount)<(pivot->startCount-pivot->endCount)){
左++;
}
........
}
我主要有:
int main(){
DListNode**sortArray;
分区数组(sortArray);
}
我不明白如何通过引用传递的数组访问节点的值。根据您定义数据结构的方式,您可能以错误的方式取消引用变量。由于*运算符的优先级较低,您可能需要使用
(*sortArray)[left]->startCount
(*sortArray[left])->startCount
或
或
或
而不是
*sortArray[left]->startCount
非常感谢。现在我有另一个问题:当我在sortArray中将一个元素设置为指向函数内部节点的指针时,我遇到了一个分段错误:int PartitionArray(DListNode***sortArray){DList node=curNode;sortArray[1]=curNode;}我遇到了一个分段错误。看起来sortArray可能还没有初始化。在调用PartitionArray()之前,我需要查看代码,以了解如何处理数据结构。
(*sortArray[left]).startCount
*sortArray[left]->startCount