我想获得指向c中链表中元素的指针。 这是我的代码。我得到错误“返回类型'bigList'时不兼容的类型,但'struct bigList **'是预期的”。请帮忙。感谢
/*this is the struct*/
struct bigList
{
char data;
int count;
struct bigList *next;
};
int main(void)
{
struct bigList *pointer = NULL;
*getPointer(&pointer, 'A'); //here how do I store the result to a pointer
}
/*function to return the pointer*/
bigList *getPointer(bigList *head, char value)
{
bigList temp;
temp=*head;
while(temp!=NULL)
{
if(temp->data==value)
break;
temp = temp->next;
}
return *temp; //here I get the error I mentioned
}
答案 0 :(得分:1)
你需要2个指针,一个指向基本列表的头指针以及你想要返回指针的位置:
int main(void)
{
struct bigList *pointer = NULL;
struct bigList *retValPtr = getPointer(pointer, 'A'); //here how do I store the result to a pointer
}
struct bigList *getPointer(struct bigList *head, char value)
{
struct bigList *temp; // Don't really need this var as you could use "head" directly.
temp = head;
while(temp!=NULL)
{
if(temp->data==value)
break;
temp = temp->next;
}
return temp; // return the pointer to the correct element
}
注意我是如何改变指针的,因为它们都是相同的类型,而你的代码有点随意。这很重要!