c:结构类型不兼容的错误

时间:2014-11-08 02:02:45

标签: c struct

我的代码如下:

这里我声明了#34; struct group"之后的公共组:

当我尝试使用该方法时,出现错误" struct group与struct group"类型的参数不兼容。我正在使用VS2013。

错误在" int value = isgroupCointainsPID(publicgroup,300);"这是我VS中的屏幕截图: enter image description here

扼杀的是,如果我发表了评论"测试",它运作良好。

我不太确定,我的代码有什么问题?

struct proNode{
    int pID;
    struct proNode *next;

};
char groups [3][128];
struct group{
    int gID;
    char *name;
    struct proNode *prolist;
    struct proNode *blacklist;
}publicgroup;


int isgroupCointainsPID(struct group _group, int pID){
    if (_group.prolist == NULL){
        printf("There is no process %d\n", pID);
        return 0;
    }
    struct proNode *pros = _group.prolist;
    while (pros != NULL){
        if (pros->pID == pID)
            return 1;
        pros = pros->next;

    }
    printf("There is no process %d\n", pID);

    return 0;
}

int main(){
    publicgroup.gID = -1;
    publicgroup.name = "public group";
    publicgroup.prolist = NULL;
    publicgroup.blacklist = NULL;
    publicgroup.gID = 2;
// there is an error :struct group is incompatible with parameters of type struct group
    int value = isgroupCointainsPID(publicgroup, 300);
    return 0;
}

2 个答案:

答案 0 :(得分:2)

错过函数原型时,可能会出现不兼容的参数错误。因此,请检查您是否编写了函数原型

答案 1 :(得分:-1)

我在输入那个方法参数时给你错了, 我从不使用VS,所以我不能给出很多建议, 我要客户扫描该用户组,所以你想把它作为指针传递? 据我所知,当我使用代码块时,只需尝试更改此

isgroupCointainsPID(struct group _group, int pID)

isgroupCointainsPID(group _group, int pID)

我希望它的工作