| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:最简单的结构体程序求指导
只看楼主 加入收藏
mayijie88
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-2-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
最简单的结构体程序求指导
我写了一个结构体程序,但是运行就会发生中断, 程序如下:

程序代码:
#include <stdio.h>

struct s1{
    char c;
    int i[2];
    double v;
} *p;

int main(){

    p->c = 'a';
    p->v = 100;
    printf("%c", p);

    return 1;
}


我一直不确定struct后面跟着的那个 *p 到底是不是全局变量,我想输出char的值也就是'a',可是程序在运行时会出错。
搜索更多相关主题的帖子: 结构体 color 
2014-02-16 02:26
mayijie88
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-2-16
收藏
得分:0 
2014-02-16 03:01
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:4 
回复 2楼 mayijie88
#include <stdio.h>

struct s1{
    char c;
    int i[2];
    double v;
} *p;

int main(){
   struct s1 s;
    p=&s;
    p->c = 'a';
    p->v = 100;
    printf("%c", p->c);

    return 1;
}
代码给你,你自己看吧。。。详细的错误原因请后来的大神讲解。

想抽苏烟了。
2014-02-16 08:35
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:4 
p只是一个指针,没有指向实际的数据空间,你需要malloc一下
p = (struct s1*)malloc(sizeof(struct s1));

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2014-02-16 12:20
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:4 
仔细看看地址和值得不同。。。

。。。。。。。。。。。
2014-02-16 13:36
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
收藏
得分:4 
p是全局变量,但你只是声明了一个p而并没有给p分配内存空间,所以p->'a';会出现内存不能读写等问题
可以给p用malloc申请一个结构体空间,也可以初始化时让p指向一个结构体,即给p赋一个结构体的地址;

2014-02-16 21:07
awaysonline
Rank: 1
等 级:新手上路
帖 子:14
专家分:6
注 册:2014-2-11
收藏
得分:4 
2014-02-17 16:52
快速回复:最简单的结构体程序求指导
数据加载中...
 
   



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

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