2007-10-18 22:56
地下森林
奇怪的问题!
说明:此程序是一个关于链表输入与输出问题的程序,能够执行,但是执行后会产生一点意想不到的结果。有哪位高手能帮忙解释一下原因?不胜感激!(注:程序运行环境是:VC6.0)
程序源代码:
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct PRogram)
typedef struct PRogram{
char ch;
struct PRogram *next;
}Program;
void input(Program *&program)
{
char ch;
Program *p,*s;
program=(Program *)malloc(LEN);
program->next=NULL;
printf("\n请输入任意字符串,以'@'结束\n");
p=program;
while(ch!='@')
{
s=(Program *)malloc(LEN);
s->ch=ch;
p->next=s;
p=s;
scanf("%c",&ch);
}
p->next=NULL;
}
void output(Program *program)
{
program=program->next;
while(program->next!=NULL)
{
printf("%c",program->ch);
program=program->next;
}
printf("%c\n",program->ch);
}
void main()
{
Program *program;
input(program);
output(program);
}