У меня есть следующая структура и функция, которая добавляет вещи в структуру:
struct scoreentry_node {
struct scoreentry_node *next;
int score;
char* name;
}
;
typedef struct scoreentry_node *score_entry;
score_entry add(int in, char* n, score_entry en) {
score_entry r = malloc(sizeof(struct scoreentry_node));
r->score = in;
r->name = n;
r->next = en;
return r;
}
У меня есть вход, который принимает его в следующем основном файле:
int score;
char name[];
int main(void) {
score_entry readin = NULL;
while(1)
{
scanf("%s%d", name, &score);
readin = add(score, name, readin);
// blah blah
Я не знаю почему, но при вводе имени оно добавляется к readin
, но когда я ввожу другое имя, все имена в readin
имеют это новое имя
например:
input:
bob 10
readin = 10 bob NULL
jill 20
readin = 20 jill 10 jill NULL
Я не знаю, почему Боб исчезает ... есть причина, почему он это делает?