将指针传递给列表,转移到函数

时间:2016-12-13 03:26:33

标签: c pointers linked-list

首先,道歉,我试图遵循其他答案,但我不能让它发挥作用。

我在C中编写一个合并排序程序,我有一个函数,它指向链接列表的两个指针并从中创建一个新的合并链表,然后返回新列表。

我尝试了很多变化,但我无法编译。 这是Node结构的定义:

    typedef struct node
    {
        int val;
        struct node *next;
    } NODE;

这是传递值的函数:

    NODE* splitList(NODE *ptr)
    {
        NODE *startPtr = NULL;
        NODE *endPtr = NULL; 
        NODE *temp  = NULL;
        NODE *temp2 = NULL;

       //fill in startPtr and endPtr with nodes

        }
        return merge(startPtr,endPtr);  //<-- passing startPtr and endPtr

    }

这是我传递指针的函数的标题:

    NODE * merge(NODE **start, NODE **end)

我从编译器得到的错误是:

“'合并'的冲突类型”

任何人都可以告诉我哪里出错了,我知道'&amp;'和''的组合可以解决这个问题,我尝试了很多组合!我不认为我正在抓住潜在的行为,所以如果有人能帮助解释这将是伟大的。

1 个答案:

答案 0 :(得分:0)

merge(&startPtr,&endPtr)

这解决了这个问题。我在文本编辑器中编写了代码并编译了它。它编译它没有任何问题。在找到原型之前,可能已经调用了合并。或者如果您首先定义函数,那么可能您在合并之前编写了splitList。所以splitList无法找到合并功能。