| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:单链表段错误,求指正
只看楼主 加入收藏
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
单链表段错误,求指正
程序代码:
//单链表的创建
//对于一个长度为n的单链表来说,指向链表的结点加上链表表身一共会有11个结点,头结点不在表身中
#include<stdio.h>
#include<stdlib.h>//malloc,exit
#define N 10

//结点
typedef struct node
{
    int data;//数据域
    struct node *next;//指向下一个结点的指针域
}Node;

//创建数量为10的单链表,返回一个Node类型的指针
Node *create(int num);
//void look(Node *h,int len);//从表头开始查看链表后len个结点

int main()
{
   

    Node *h=NULL;//指向头结点的指针,数据域为0,链接域指向链表
    h=create(N);
    return 0;
}

Node *create(int num)
{
    if(num<0)
        return NULL;
    Node *head;//头结点(即链表中的第一个结点)
    Node *current;//当前指针
    Node *tail;//尾结点,当前链表中最后一个结点
    //初始化头结点
    tail=head=NULL;
   

    int count=0;
    while(count<num)//循环完一次增加一个结点
    {
        //生成结点
        if((current=(Node *)malloc(sizeof(Node))) == NULL)
        {
            printf("分配空间失败\n");
            exit(1);
        }
        current->data = count+1;
        current->next = NULL;
       

        if(head == NULL)//循环第一次,头指针没有指向任何结点
        {
            head=tail=current;//指针的复制
        }
        else
        {
            tail->next=current;
            tail = current;
        }
    }
    return head;
}
编译通过,出现段错误,不知道为什么,求大神指正
搜索更多相关主题的帖子: include color 
2014-08-10 18:16
DavidCheung
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:35
注 册:2014-8-8
收藏
得分:10 
忘了count++;
2014-08-10 19:28
想念遇见
Rank: 2
等 级:论坛游民
帖 子:87
专家分:74
注 册:2012-5-10
收藏
得分:10 
头结点放不放date?count++
2014-08-10 20:55
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
收藏
得分:0 
谢谢,我之前学的不是C语言,也是最近刚学,对链表什么的不太熟悉,出现段错误这种东西也不知到怎么解决。
至于初始化头结点的问题,我发现放到
tail=head=NULL;
这句代码之前会提示,head没有初始化,放到这句代码之后会出现段错误,比较纠结,还在纠结中...
2014-08-10 23:32
快速回复:单链表段错误,求指正
数据加载中...
 
   



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

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