当前位置: 代码迷 >> C语言 >> [help]请大家帮我决一个基础的问题
  详细解决方案

[help]请大家帮我决一个基础的问题

热度:229   发布时间:2005-07-29 20:59:00.0
[help]请大家帮我决一个基础的问题
#include<stdio.h>
#include<conio.h>
#define NULL 0
typedef struct
{char name[25];
  long num;
  float score;
}elemtype;

main( )
{ elemtype *p;
scanf("%f",&p->score);
printf("\n%f",p->score);
getch();
}
这个程序在win-tc中编译成功,但运行时就马上关闭,为什么呢?
搜索更多相关的解决方案: help  基础  

----------------解决方案--------------------------------------------------------
p未初始化就使用,导致非法访问内存
----------------解决方案--------------------------------------------------------
编译成功?
----------------解决方案--------------------------------------------------------
大家认真比较一下以下两个程序:
#include<stdio.h>
#include<conio.h>                     
typedef struct
{long score;
  }Node;
main()
{Node *p,a;
  p=&a;
  scanf("%ld",&(*p).score);
  printf("\n%ld",p->score);
  getch();
}

-----------------------------
#include<stdio.h>
#include<conio.h>
typedef struct
{float score;
  }Node;
main()
{Node *p,a;
  p=&a;
  scanf("%f",&(*p).score);
  printf("\n%f",p->score);
  getch();
}

你会发现长整型的可以成功运行,而实型的却不行.
----------------解决方案--------------------------------------------------------
这种情况是TC特有的,看看置顶的帖子里有解决办法,让TC知道你要进行实型转换就可以解决这个问题了
----------------解决方案--------------------------------------------------------
TC的bug
----------------解决方案--------------------------------------------------------
置顶帖里的哪张,我找不到呀,还有那句"TC的bug"是什么意思哦
----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=18233&page=1 看四楼的帖子
----------------解决方案--------------------------------------------------------
  相关解决方案