| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:求助。一段有关结构和联合方面代码出现 segmentation fault。
只看楼主 加入收藏
woaiBCH
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-2-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助。一段有关结构和联合方面代码出现 segmentation fault。
本人初学C,编了一段练习结构和联合知识方面的代码。但debug时出现     c programme received signal sigsegv segmentation fault
不明其原因,请有时间的前辈指点。
代码如下(本人初学,代码风格很挫请见谅)
目的:输入每个学生的学号,姓名,英语数学物理设计四门成绩。然后输出每个学生的各项信息。

#include <stdio.h>
#include "stdlib.h"
struct xinxi{
    int xuehao;
    char *xingming;
    float yingyu;
    float shuxue;
    float wuli;
    float sheji;
    struct xinxi *p;
};
void create_list (struct xinxi **headp);
int main(void)
{
    struct xinxi *head=NULL,*pp;

    create_list(&head);
    pp=head;
    while(pp){
        printf ("xuehao:%d\tname:%s\n",pp->xuehao,pp->xingming);
        printf ("yingyu:%f\tshuxue:%f\twuli:%f\tsheji:%f\n",pp->yingyu,pp->shuxue,pp->wuli,pp->sheji);      /* 输出数据域的值 */
        pp=pp->p;
    }
    printf("\n");

    return 0;
}
void create_list(struct xinxi **headp)
{
        struct xinxi * loc_head=NULL,*tail;
        int xuanze;

        loc_head=(struct xinxi *)malloc(sizeof(struct xinxi));
        printf ("xuehao,name:\t");
        scanf  ("%d,%s",&loc_head->xuehao,loc_head->xingming);
        getchar();
        printf ("yingyu,shuxue,wuli,sheji: ");
        scanf  ("%f,%f,%f,%f",&loc_head->yingyu,&loc_head->shuxue,&loc_head->wuli,&loc_head->sheji);
        getchar();
        loc_head->p=NULL;
        printf ("if you want to enter next one input '1'\n " );
        scanf ("%d",&xuanze);

        while(1==xuanze)
        {
            tail=(struct xinxi *)malloc(sizeof(struct xinxi));
            tail->p=loc_head;
            printf ("xuehao,name:\t");
            scanf  ("%d,%s",&tail->xuehao,tail->xingming);getchar();
            printf ("yingyu,shuxue,wuli,sheji: ");
            scanf  ("%f,%f,%f,%f",&tail->yingyu,&tail->shuxue,&tail->wuli,&tail->sheji);getchar();
            loc_head=tail;
            printf ("if you want to enter next one input 1\n " );
            scanf ("%d",&xuanze);
        }


    *headp=loc_head;
}
搜索更多相关主题的帖子: 结构 programme received include 
2013-05-24 21:29
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:20 
    struct xinxi *head=NULL,*pp;

    create_list(&head);
传了空指针的指针进去目的是?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-25 06:55
woaiBCH
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-2-26
收藏
得分:0 
回复 2楼 pauljames
我觉得应该给该指针初始化一下,所以用NULL赋值了。
2013-05-25 09:09
快速回复:求助。一段有关结构和联合方面代码出现 segmentation fault。
数据加载中...
 
   



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

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