我运行的一个C++程序出现了一个违例段异常。求高手解答。 还有什么是违例段异常?

[复制链接]
查看11 | 回复1 | 2011-5-17 14:02:46 | 显示全部楼层 |阅读模式
#include
#include
#include
using namespace std;
#define statue int
typedef struct Elemtype{
        int e1;
        int e2;
        Elemtype *next;
} *Linktype;
//元素结构
typedef struct{
//直表元素结构。

int m;

Linktype e;

Elemtype *cur;
//current当前
}HeadL,*Linkheadl;
statue shuru(int n,HeadL *a)
{

int i,j,k;

Linktype p,q;

for(i=0;inext=NULL;

cin>>q->e1>>q->e2;

for(j=a[0].m;j;j--)

{

if(a[j].e-(q->e1))

{

for(;(a[j].cur)->next;a[j].cur=(a[j].cur)->next)

{

if(a[j].cur->e1>q->e1)

{

p=a[j].cur;

a[j].cur=q;

q->next=p;

a[j].cur=a[j].e;

break;

}//if

}//for

if(!q->next) a[j].cur->next=q;

}//if

if(!(j-1))

{

a[0].m++;

k=a[0].m;

a[k].m=q->e1;

}//if

}//for

}//for

k=a[0].m;

HeadL h;

for(i=k-1;i;i--)

{

for(j=1;ja[j+1].m) {h=a[j];a[j]=a[j+1];a[j+1]=h;}

}//for

}//for

return 0;
}// 输入
statue shuchu(HeadL *L)
{

int i,k,j,n=L[0].m;

Elemtype *elem;

for(j=1;n;j++)

{

coute1e1e2next;

if(!L.cur)n--;

}//for

}//for

return 0;
}
int main()
{
        int n;

HeadL a[2000];

a[0].m=1;a[1].m=0;a[1].e=NULL;a[1].cur=NULL;
        cin>>n;

shuru(n,a);
        shuchu(a);
        system("pause");
        return 0;
}

回复

使用道具 举报

千问 | 2011-5-17 14:02:46 | 显示全部楼层
不知程序是不是你写的;使用指针之前好心你先判断是不是null再使用;比如这里:for(;(a[j].cur)->next;a[j].cur=(a[j].cur)->next)//你不判断cur是不是null,如果是null运行时肯定会有错; 如果是我应该写成这样:if(a[j].cur==NULL){coutnext;a[j].cur=(a[j].cur)->next) 然后: for(j=1;n;j++)//这里,你应该考虑下n会不会一直都是真,否则陷入死循环
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行