一道关于链表的问题
struct word {char c[20];
struct word *next;
}; //结构体定义
struct word *create_word_list()
{ int i,m,j;
struct word *head=NULL,*p=NULL;
char s[1000];
head=(struct word *)malloc(sizeof(struct word));
p=NULL;
printf("输入字符串:");
gets(s); //输入一个句子:如I am a boy
for(i=0;s[i]!=' ';i++)
head->c[i]=s[i]; //将字符串每个单词放于链表节点内
p=head->next;
for(j=i+1;s[j]!='\0';j++)
{
p=(struct word *)malloc(sizeof(struct word));
for(m=0;s[j]!=' '||s[j]!='\0';j++,m++)
p->c[m]=s[j];
p=p->next;
}
p=NULL;
return head; //返回链表头
}
//这个程序出现中途自动停止,怎么回事?不会是内存越界了吗?