计算链接列表中的节点项

时间:2016-04-08 19:47:44

标签: nodes

这是我的程序,除了"添加"功能。 numItems函数应该接收' item'作为输入并浏览每个玩家的东西,并加上项目的数量(如果它在那里)。所以,我的问题是,说玩家1有3只狗,玩家2有5只狗,该功能只计算3然后完成。当我尝试使用printf调试它时,打印出什么项目' iptr'当它发现第二次出现的狗时,我得到了一个段错误。我只是觉得这是一个简单的解决方案。

typedef struct item {
char *name;
int count;
struct item *next;
} Items;

typedef struct player {
char *name;
Items *things;
struct player *next;
} Players;

int numItems(Players *list, char *item) {
    Players * ptr = list;
    Items* iptr = ptr->things;
    int count = 0;
    int i = 0;
    while(ptr != NULL) {
        while(iptr != NULL ) {
            if(strcmp(iptr->name, item) == 0) {
                printf("first if: %s", iptr->name);
            }
            else {
                i++;
            } 
            iptr = iptr->next;
         }


       ptr = ptr->next;
     }
return count;
}

1 个答案:

答案 0 :(得分:0)

应为每个新的非NULL值iptr重新初始化

ptr