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指向哪个空间呢?
----------------解决方案--------------------------------------------------------
a指向哪个空间呢?
......那定义float *a时没有定义他指向的空间?而float a定义了?
----------------解决方案--------------------------------------------------------
得为a申请空间吧
----------------解决方案--------------------------------------------------------
由于float*a是一个指针变量。指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。
这里的a没有赋值。
赋值方式为int *p=&a;或int *p;p=&a;。
----------------解决方案--------------------------------------------------------
大家帮帮忙!!谢了!
----------------解决方案--------------------------------------------------------
好像没有什么问题。
----------------解决方案--------------------------------------------------------
运行不出来啊!!
----------------解决方案--------------------------------------------------------
#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);
----------------解决方案--------------------------------------------------------
这里scanf("%f",a); 应该不对吧!应改为scanf("%f",&a);
a 已经是地址了啊?
----------------解决方案--------------------------------------------------------