これが私が書いたコードで、リンクリストに人の名前を追加します。これらの名前を表示しようとすると問題が発生します。名前を印刷する代わりに、私のコードはジャンク文字を印刷します。
struct node
{
char name1[5];
struct node *link;
};
void add(struct node **q,char *name)
{
struct node *temp,*r;
if(*q==NULL)
{
temp=malloc(sizeof(struct node));
*temp->name1=name;
temp->link=NULL;
*q=temp;
count++;
}
else
{
count++;
temp=*q;
while(temp->link !=NULL)
temp=temp->link;
r=malloc(sizeof(struct node));
*r->name1=name;
r->link=NULL;
temp->link=r;
}
}
void display(struct node *q)
{
while(q!=NULL)
{
printf("%s",q->name1); //it prints junk characters
q=q->link;
}
}
int main()
{
struct node *p;
p=NULL;
add(&p,"Alice");
add(&p,"Cat");
add(&p,"Pawan");
add(&p,"BoB");
display(p);
getch();
return 0;
}