首页 > 解决方案 > 函数出现冲突类型错误但参数匹配

问题描述

我知道当函数原型和实际函数的参数不同时,您会遇到类型冲突的错误。但是,我编写的这个函数似乎并非如此,它是为了从链表中删除所有出现的字符。不确定代码是否可以工作,但我找不到,因为我不断收到冲突类型错误。这是节点定义,

typedef struct node{
char c;
struct node*next;
}Node,*NodePtr;

这是原型

NodePtr remove(NodePtr,char);

这是功能

NodePtr remove(NodePtr top,char ch){
NodePtr prev,curr;
curr=top;
while(curr!=NULL&&curr->c==ch)
{top=curr->next;
free(curr);
curr=top;}//if head node contains ch or multiple occurrences
while(curr!=NULL)
{
    while(curr!=NULL&&curr->c!=ch)
    {
        prev=curr;
        curr=curr->next;
    }
    prev->next=curr->next;
    free(curr);
    curr=prev->next;// update curr
}
return top;
}// end of remove

我不知道为什么会出现类型冲突的错误。

标签: c

解决方案


我想我找到了问题所在。函数名remove已经是c库什么的函数名了。我必须更改函数名称。我更改了名称和编译的代码。这样就解决了“冲突类型错误”问题。无论如何,我的功能实现是错误的。


推荐阅读