首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

GCC编译出现断异常

2012-03-19 
GCC编译出现断错误下面是我的程序,比较多,所以分给多点C/C++ code/*initial.h*/#includestdio.h#include

GCC编译出现断错误
下面是我的程序,比较多,所以分给多点

C/C++ code
/*initial.h*/#include<stdio.h>#include<stdlib.h>#define SUCCESS 1#define FAILURE 0typedef struct node{        char data;        struct node* next;}listnode;typedef struct node* linklist;typedef int Status;Status Initiallist(linklist*);                      /*初始化链表*/Status InsertList(linklist*,int,char);               /*在链表中插入元素*/Status DelList(linklist*,int);                  /*删除链表中的元素*/Status DestoryList(linklist*);                      /*销毁链表*/int    ListLength(linklist);Status GetElem(linklist,int,int*);/*定义函数*/Status InitialList(linklist* link){        *link=(linklist)malloc(sizeof(listnode));        if(*link==NULL)                exit(1);        (*link)->next=*link;        return SUCCESS;}Status DestoryList(linklist* link){        linklist q,p=(*link)->next;        while(p!=*link){                q=p->next;                free(p);                p=q;        }        free(*link);        *link=NULL;        return SUCCESS;}Status InsertList(linklist* link,int pos,char data){        linklist p=(*link)->next;        linklist s;        int j=0;        while(pos<0 || pos > ListLength((*link)))                return FAILURE;        while(j<pos-1){                j++;                p=p->next;        }        s=(linklist)malloc(sizeof(listnode));        s->data=data;        s->next=p->next;        p->next=s;        if(p==*link)                *link=s;        return SUCCESS;}Status DelList(linklist* link,int pos){        linklist q,p=(*link)->next;        int j=0;        while(pos<0 || pos>ListLength((*link)))                return FAILURE;        while(j<pos-1){                j++;                p=p->next;        }        q=p->next;        p->next=q->next;        free(q);        p=q;        if(*link==q)                *link=p;        return SUCCESS;}int ListLength(linklist link){        linklist p=link->next;        int i=0;        while(p!=NULL){                i++;                p=p->next;        }        return i;}Status GetElem(linklist link,int pos,int* data){        linklist p=link->next;        int j=0;        if(pos<0 || pos>ListLength(link))                return FAILURE;        while(j<pos){                j++;                p=p->next;        }        *data=p->data;        return FAILURE;}

/*main.c*/
C/C++ code
#include<stdio.h>#include "initial.h"int main(void){        linklist L;        int length;        int status=0;        int data;        length=ListLength(L);        InitialList(&L);        InsertList(&L,2,'b');        for(status=0;status<ListLength(L);status++){                GetElem(L,status,&data);                printf("%c",data);        }        return 0;}

编译没有任何错误,但是运行的时候出现断错误

[解决办法]
是在linux写的程序吗?如果是你可以尝试一下使用gdb调试一下,在编译的时候加上-g参数,然后gdb + 执行文件名 输入-r参数直接定位到段错误的行。

热点排行