から生徒のレコードを削除する:これは私がリンクリスト内の特定の生徒のレコードを削除するために書かれているコードは、単一リンクリスト
int delete (struct student **q, struct student s,char *n) {
if(*q==NULL)
{
printf("The linked list is empty\n");
return 0;
}
struct student *prev=*q;
while(prev->link!=NULL && prev->link!=n)
{
prev=prev->link;
}
if(prev->link==NULL)
{
printf("Student %s not found\n",n);
return 0;
}
prev->link=prev->link->link;
free(n);
return 1;
}
しかし、私は、while文のためcomparison of distinct pointer types lacks a cast [enabled by default]
を知らせる警告メッセージを取得していますwhile(prev->link!=NULL && prev->link!=n)
は、これは構造体である:
struct student
{
int id;
char name[10];
char gender[10];
struct student * link;
}*head;
とn
店舗bに持っている学生の名前eが削除されました。
を 'prev->リンク、また'構造体student' –
私たちを見る= N 'ということは何ですかどういう意味ですか? –
nはchar *ですが、prev-> linkは生徒*ですので、strcmp(prev-> link-> name、n)== 0のような学生名を比較したいと思います。 –