LoveUnix » 编程开发 & Rational » 奇怪的问题!
让LU留住您的每

一天 让LU博客留住您的每一天
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);
}

2007-11-21 15:07 yekai_23
你使用结构体了,是否应该申请一下空间呢

你使用结构体了,是否应该申请一下空间呢
如果没有内存申请,调用好像会报错吧

页: [1]
查看完整版本: 奇怪的问题!


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.