我写了这个代码:(以上结构和下方的功能)添加详细信息链接结构
list * add_student(slist * students, char * name, int id) {
slist * temp, * adder;
if (!(adder = (slist *)
malloc(sizeof(slist)))) exit(1);
student * data;
if (!(data = (student *)
malloc(sizeof(student)))) exit(1);
data - > name = name;
data - > id = id;
data - > courses = NULL;
adder - > info = data;
adder - > next = NULL;
if (!students) {
return adder;
}
for (temp = students; temp - > next; temp = temp - > next);
temp - > next = adder;
return students;
}
的结构是:
typedef struct course {
char *title;
int number;
struct slist *students;
} course;
typedef struct slist {
student *info;
struct slist *next;
} slist;
typedef struct clist {
course *info;
struct clist *next;
} clist;
第一个功能是应该的学生加入到学生名单。 它增加了学生,但如果我试图把另一名学生,名称正在替换第一个名称(只有名称不是数字)。
我无法找到代码中的错误生病真的很感谢您的帮助。
谢谢。
这不是C#。请下次使用正确的语言标记。 – PoweredByOrange
标签为c#,但显然不是c#。 – spender
你的问题很可能是你调用函数的方式。显示该代码。我的猜测是'char * name'一直指向你一次又一次改变的同一个变量(例如一个数组)。 – 4386427