如何取消引用由一个带有int&的函数的指针返回的地址。 struct类型的指针?

时间:2015-04-17 07:14:57

标签: c++ pointers struct dereference

我正在传递一个int&指向结构的结构的指针,该函数返回指向结构中数据的指针。如何取消引用指针返回的地址?

我创建了一个搜索功能来查找链表中的节点。这是我的搜索功能:

Entry* search(int num, Entry* &head)
{
    Entry *current;

    current = head;

    while(current != NULL)
    {
        if(atoi(current->number) == num)
        {
            return(current); //selected node is found
        }
        current = current->next; //move to next node to check for num
    }

    return head;//if not found return head of linked list
}

我的问题是尝试获取从以下位置返回的指针的值:

cout << (search(searchNum, listHead));

上面的语句将地址返回到函数中指针返回的值,如下所示:

0x100300000

所以我尝试了不同的变体:

cout << *(search(searchNum, listHead));

但我只会遇到错误......

任何人都可以帮我弄清楚如何从返回的指针中获取值吗?

最终,我喜欢用这样的东西来完成它:

found = search(searchNum, listHead);
cout << "The number you searched for is: " << *found;

但它只是发生了:/

谢谢你们。我是一个新手,所以请原谅我完全偏离任何这个...我试图寻找一个类似的问题,但只是无法得到任何明确的答案...也许它真正的joel spolsky说指针。 ..有些人错过了大脑的一部分,让他们理解......:/

1 个答案:

答案 0 :(得分:2)

尝试:

cout << "The number you searched for is: " << found->number;

cout << "The number you searched for is: " << (*found).number;