字符串作为参数

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:16:13
struct word* creat_word(char* str)
{
struct word* head=NULL;
struct word* p1=NULL;
struct word* p2=NULL;
p1=p2=(struct word*)malloc(LEN);
head=p1;
char ch;
ch=str[0];
int i=1;
while (ch!=0)
{
p1->let=ch;
p2=p1;
p1=p2->next;
p1=(struct word*)malloc(LEN);
ch=str[i];
i++;
}
p1->next=NULL;
return(head);
}

函数作用是将传入的字符串制成链表 可是一进入函数传入的字符串就直接变成了全部问号 这是怎么回事...
我遇到的问题是 在DEBUG的时候 F11到这个函数 在F5进入时str就从原来传进去的数组变成一串问号 好像不是在后面的问题

p1=p2->next;
p1=(struct word*)malloc(LEN);
这两行改成:
p1=(struct word*)malloc(LEN);
p2->next=p1;
再试试,不过你的程序有问题,最后会多分配一个多余的结点出来。

如果你想验证,很简单:
在struct word* p2=NULL; 这个语句后,输出字符串str的内容
在p1=p2=(struct word*)malloc(LEN); 这个语句后,输出p1指向的内容
Debug一下