结构体中给成员赋值赋不进去
typedefstruct{doublereal;doubleimage;}complex;定义了这么个结构体complex*creat(complex*p){p=(co...
typedef struct
{
double real;
double image;
}complex;
定义了这么个结构体
complex *creat(complex *p)
{
p=(complex *)malloc(sizeof(complex));
double real=0,image=0;
printf("输入该数:\nreal image\n");
scanf("%d%d",&real,&image);
p->real=real;
p->image=image;//为什么此处image 的赋值赋不进去?
return p;
}
并调用这个函数打算给它的成员赋值,但是p->image的值老赋不进去
我检查了很久了,都找不出来~~ 试过用%f读了,但是,打印出来的就是乱码了
打印出来一堆shit。 展开
{
double real;
double image;
}complex;
定义了这么个结构体
complex *creat(complex *p)
{
p=(complex *)malloc(sizeof(complex));
double real=0,image=0;
printf("输入该数:\nreal image\n");
scanf("%d%d",&real,&image);
p->real=real;
p->image=image;//为什么此处image 的赋值赋不进去?
return p;
}
并调用这个函数打算给它的成员赋值,但是p->image的值老赋不进去
我检查了很久了,都找不出来~~ 试过用%f读了,但是,打印出来的就是乱码了
打印出来一堆shit。 展开
3个回答
2013-11-30
展开全部
不是没有赋值进去。你肯定是这么调用的:
complex * p;
creat(p);
//然后打印
这样调用相当于值传递。并不能改变p的值。
你可以传指针的引用或者二级指针!
或者:
p = creat(p);
这样就好了!
complex * p;
creat(p);
//然后打印
这样调用相当于值传递。并不能改变p的值。
你可以传指针的引用或者二级指针!
或者:
p = creat(p);
这样就好了!
2013-11-30
展开全部
double的输入格式是%lf
scanf("%lf%lf",&real,&image);
scanf("%lf%lf",&real,&image);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-30
展开全部
要用二级指针complex *creat(complex **p)
{
*p=(complex *)malloc(sizeof(complex));
double real=0,image=0;
printf("输入该数:\nreal image\n");
scanf("%d%d",&real,&image);
(*p)->real=real;
(*p)->image=image;
return *p;
}
{
*p=(complex *)malloc(sizeof(complex));
double real=0,image=0;
printf("输入该数:\nreal image\n");
scanf("%d%d",&real,&image);
(*p)->real=real;
(*p)->image=image;
return *p;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |