当前位置: 代码迷 >> C语言 >> 谁知道这个输入有什么问题(再问)
  详细解决方案

谁知道这个输入有什么问题(再问)

热度:113   发布时间:2006-12-04 14:55:21.0
谁知道这个输入有什么问题(再问)
#include<stdio.h>
void main()
{
float*a;
scanf("%f",a);
printf("a=%f",*a);
}
若申请动态空间行不行啊?即:
#include<stdio.h>
#include<alloc.h>
void main()
{
float *a;
a=(float*)malloc(sizeof(float));
scanf("%f",a);
printf("a=%f",*a);
}
运行还是不行。

[此贴子已经被作者于2006-12-6 15:24:40编辑过]

搜索更多相关的解决方案: 输入  

----------------解决方案--------------------------------------------------------
a指向哪个空间呢?
----------------解决方案--------------------------------------------------------
以下是引用我不是郭靖在2006-12-4 15:07:08的发言:
a指向哪个空间呢?

......那定义float *a时没有定义他指向的空间?而float a定义了?
----------------解决方案--------------------------------------------------------
得为a申请空间吧
----------------解决方案--------------------------------------------------------
由于float*a是一个指针变量。指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。
这里的a没有赋值。
赋值方式为int *p=&a;或int *p;p=&a;。

----------------解决方案--------------------------------------------------------
大家帮帮忙!!谢了!
----------------解决方案--------------------------------------------------------

好像没有什么问题。


----------------解决方案--------------------------------------------------------
运行不出来啊!!
----------------解决方案--------------------------------------------------------
以下是引用aaabccc在2006-12-4 14:55:21的发言:
#include<stdio.h>
void main()
{
float*a;
scanf("%f",a);
printf("a=%f",*a);
}
若申请动态空间行不行啊?即:
#include<stdio.h>
#include<alloc.h>
void main()
{
float *a;
a=(float*)malloc(sizeof(float));
scanf("%f",a);
printf("a=%f",*a);
}
运行还是不行。

这里scanf("%f",a); 应该不对吧!应改为scanf("%f",&a);


----------------解决方案--------------------------------------------------------
以下是引用hyxlz2008在2006-12-6 15:53:55的发言:

这里scanf("%f",a); 应该不对吧!应改为scanf("%f",&a);

a 已经是地址了啊?
----------------解决方案--------------------------------------------------------

  相关解决方案