| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:结构体内存问题,请教!!
只看楼主 加入收藏
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
结构体内存问题,请教!!
int main()
{   
 typedef struct Date
    {
        int year;
        int month;
        int day;
    } Date;

    Date *pd = (Date *)malloc(sizeof(Date)) ; // 改成 Date d;
    //printf("%d\n",pd);  
    printf("请输入年份\n");
    scanf("%d",(*pd).year);   //改成  d.year
    printf("%d\n",(*pd).year);  // 改成 d.year
    return 0;
}

当输入数字的时候就出现 内存不能为 written  ,想请教一下,是哪里没有分配内存空间么? 改成后面的那种也会报内存错误!
搜索更多相关主题的帖子: 内存 written return 结构体 
2013-05-01 22:57
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
木有人么??在线等
2013-05-01 23:01
小小玉
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:156
注 册:2013-4-13
收藏
得分:7 
scanf("%d",(*pd).year);改成scanf("%d",&(*pd).year);输入函数要有取地址符。改过后,你看看你的要求达到的了吗?
2013-05-01 23:24
鈴蘭
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:145
注 册:2013-4-1
收藏
得分:7 
楼上正解,如果楼主觉得同时用* 和 & 容易搞错,可以不用*而用->代替,即 scanf("%d",&pd->year)这种表达

菜鸟一枚,回复如有错误,还望谅解!
2013-05-02 08:27
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:6 
scanf("%d",(*pd).year);   //改成  d.year
这句的问题,scanf函数要求的是变量的地址,你这些的是不行的,加个取地址符&

Maybe
2013-05-02 08:49
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
一时的疏忽,哎~~
还是不够细心啊!~
2013-05-02 14:12
qldxsun
Rank: 4
等 级:业余侠客
帖 子:125
专家分:240
注 册:2011-6-4
收藏
得分:0 
& pd->year 这样就行了
2013-05-04 09:37
快速回复:结构体内存问题,请教!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026816 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved