Can';在我的链表代码中找不到错误
此函数用于从文件中加载一些个人信息并将其放入链接列表中,然后返回指向列表第一个元素的指针。使用的结构与代码中的结构相同,每个用户的全名和ID(索引)Can';在我的链表代码中找不到错误,c,linked-list,C,Linked List,此函数用于从文件中加载一些个人信息并将其放入链接列表中,然后返回指向列表第一个元素的指针。使用的结构与代码中的结构相同,每个用户的全名和ID(索引) typedef struct Serveur { char ID[6]; char nom[CMAX]; char prenom[CMAX]; struct Serveur *nxt; }Serveur; Serveur *creer_liste() {
typedef struct Serveur
{
char ID[6];
char nom[CMAX];
char prenom[CMAX];
struct Serveur *nxt;
}Serveur;
Serveur *creer_liste()
{
return NULL;
}
Serveur* add_server(Serveur *tete,char ID[6],char nom[CMAX],char prenom[CMAX])
{
Serveur* T=malloc(sizeof(Serveur));
T->ID=ID;
T->nom=nom;
T->prenom=prenom;
T->nxt=tete;
tete=T;
return tete;
}
Serveur *load_servers() //load servers list from the daba base and organise them
{
int c=0; char ID[6],nom[CMAX],prenom[CMAX];
Serveur *tete;
FILE *fichier=NULL;
fichier=fopen("base/serveurs_liste.txt","w");
if(fichier==NULL)
return NULL;
else
{
rewind(fichier);
c=fgetc(fichier);
if(c==EOF)
return NULL;
else
{
rewind(fichier);
while(!feof(fichier))
{
do{c=fgetc(fichier);}
while(c!='\n');
fscanf(fichier,"%s %s %s",ID,nom,prenom);
tete=add_server(tete,ID,nom,prenom)
}
}
}
return tete;
}
但是我面对这个错误,在我看来,每件事都是合乎逻辑的,我真的找不到哪里出了问题,所以如果有人能找出哪里出了问题,请告诉我你从
添加服务器返回了错误的值。您应该返回新分配的T
:
Serveur* add_server(Serveur *tete,char ID[6],char nom[CMAX],char prenom[CMAX])
{
Serveur* T=malloc(sizeof(Serveur));
T->ID=ID;
T->nom=nom;
T->prenom=prenom;
T->nxt=tete;
return T;
}
你用调试器了吗?哪一个?你从中学到了什么?(你为什么不…)你好。请原谅我的讽刺,但事实是基于机器的调试器通常比人工调试器更有用。:-)<代码>T->ID=ID代码>-->strcpy(T->ID,ID)代码>fichier=fopen(“base/serviers_liste.txt”,“w”)代码>:w
-->r
然后需要fclose(fichier)代码>“但我面临这个错误”。那会是什么错误?