永发信息网

c语言结构指针作为函数参数

答案:3  悬赏:0  手机版
解决时间 2021-02-19 14:18
c语言结构指针作为函数参数
最佳答案
stu 直接声明的指针,空间没有分配。
可考虑改为:

#include
struct date
{int year,month,day;}stu, *p_stu;
void print(struct date *stu);
void main()
{
    p_stu = &stu;
scanf("%d%d%d",&p_stu->year,&p_stu->month,&p_stu->day);
print(p_stu);
}
void print(struct date *stu)
{
printf("birth is %dyear %dmonth %dday
",stu->year,stu->month,stu->day);
}追问指针型结构怎么初始化啊?只能下面这样吗?有没有跟变量型结构一样一次就初始化?
struct date1
{int year,month,day;}*stu;stu=(struct date*)malloc(sizeof(struct data)); stu->year=2014;追答把定义的结构 typedef 一下就能直接用 date stu, *p_stu 这样声明了。例如:
typedef struct date
{
    int year,month,day;
} date;
全部回答
你全局变量stu是个指针,没有malloc空间出来就赋值了scanf追问struct da{int year,month,day;}stu;这样就分配内存了,指针必须初始化,否则就没分配内存,别的数据类型不用?
#include //空格
void print(struct date *stu);
struct date
{int year,month,day;} stu;//把*去掉就可以了。这样就是一个全局变量了。不是一个指针变量(内存地址的变量)。
void main()
{
scanf("%d %d %d",&stu->year,&stu->month,&stu->day);//空格隔开。区分数字格式可以用逗号。
print(&stu); //加上取地址。
}
void print(struct date *stu)
{
printf("birth is %dyear %dmonth %dday\n",stu->year,stu->month,stu->day);
}追问指针型结构怎么初始化啊?只能下面这样吗?有没有跟变量型结构一样一次就初始化?
struct date1
{int year,month,day;}*stu;stu=(struct date*)malloc(sizeof(struct data)); stu->year=2014;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
威海市环翠区孙家疃镇合庆社区居民委员会在哪
阅读漫画《梦想!理想!》要实现长大后当宇航
菏泽哪有教鬼舞步的,想学,求教
杭州的阿里巴巴怎么样
如何建造太阳能发电塑料大棚?
顺发门窗装璜部怎么去啊,有知道地址的么
东方绯想天里面所说的“立回”是什么意思?
6分之1+13分之5+6分之5等于多少
市民卡自助机地址有知道的么?有点事想过去
球球大作战怎么刷最大体重简单点
向日葵托管辅导地址在什么地方,想过去办事
为什么有钱人家里装电线都用2.5平
在手机上如何把图片尺寸放大
小便火有什么症状
狮子脚地址有知道的么?有点事想过去
推荐资讯
建设书院呀什么条件? --来自百度魔力学堂
太白路/S102(路口)地址在哪,我要去那里办事
移动光纤宽带开了一年,第二年电脑坏了不用了,
豆腐的腐是不是我写的腐
北京理工大学远程教育学院我想知道这个在什么
兴隆装饰在什么地方啊,我要过去处理事情
梦迪专业烫染机构地址有知道的么?有点事想过
KTV会员充值卡,办理不留客人相关信息,卡丢
叶一服装城在什么地方啊,我要过去处理事情
五通立交我想知道这个在什么地方
买合力叉车两种发动机哪个质量好点
偏铝酸钠与二氧化碳反应的化学方程式 怎样写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?