|

楼主 |
发表于 2018-10-11 22:51:10
|
显示全部楼层
#include<stdlib.h>
#include<string.h>
#include <stdio.h>
#include <malloc.h>
struct Book
{
char a[20];
struct Book *next;
};
struct Book *list()
{
struct Book *p1=(struct Book *)malloc(sizeof(struct Book));
p1->next=NULL;
return p1;
}
struct Book *xinlist(char *a)
{
struct Book *p2=(struct Book *)malloc(sizeof(struct Book));
// p2->a=a;
strcpy(p2->a,a);
p2->next=NULL;
return p2;
}
void lianjie(struct Book *p1,char *a)
{
struct Book *p3=xinlist(a); // <--------
static struct Book *p4;
p4->next=p3;
p3->next=NULL; <--------改为尾插法为什么会报段错误昵?
p4=p3;
// p3->next=p1->next;
//p1->next=p3;
}
void dayin(struct Book *p1)
{
struct Book *p4=p1->next;
while(p4!=NULL)
{
printf("%s",p4->a);
p4=p4->next;
}
}
int main(void)
{
struct Book *p=list();
lianjie(p,"ABC");
lianjie(p,"DEF");
lianjie(p,"GHI");
dayin(p);
return 0 ; |
|