这是我的程序,除了"添加"功能。 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;
}
答案 0 :(得分:0)
iptr
重新初始化 ptr
。