能否贴上你完整的程序?这样容易调试。
程序代码:/*
串链表的链接
*/
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(STRNODE)
struct strnode
{ char c;
struct strnode *next;
};
typedef struct strnode STRNODE;
STRNODE *create(void)
{
char c;
STRNODE *head,*p1, //p1总是指向新结点
*p2; //p2总是指向新表尾
head=p2=(STRNODE *)malloc(LEN ); //指向头结点
head->next=NULL;
while ((c=getchar())!='\n')
{
p1=(STRNODE *)malloc(LEN );
p1->c=c;
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return head;
}
void print(STRNODE *head)
{
STRNODE *p;
p=head->next; //p从表头开始遍历链表
while(p!=NULL)
{
putchar(p->c);
p=p->next; //前进指针,让p指向下一个结点
}
printf("\n");
}
STRNODE *str_con(STRNODE *s1,STRNODE *s2)
{
STRNODE *p,*q,*s;
p=s1->next;
q=s2->next;
do{
p=p->next;
}while(p->next!=NULL);
do{
s=(STRNODE *)malloc(sizeof(STRNODE));
s->c=q->c;
p->next=s;
p=s;
q=q->next;
}while(q!=NULL);
p->next=NULL;
return s1;
}
int main()
{
STRNODE *s1,*s2;
s1=create();
s2=create();
s1=str_con(s1,s2);
print(s1);
return 0;
}







