出错的函数如下:
NodeTp*Crt(int n,char b[],char jj[])
{
int i;
NodeTp *p,*h,*last;
CreateNode(h);
last=h;
for(i=0;i
{
if(jj[i]=='2')
{
CreateNode(p);
if(b[i]=='1')
{
p->pf[0]=a[i][0];
p->pf[1]=a[i][1];
p->pf[2]=a[i][2];
p->SA=0;
last->next=p;
last=p;
}
else
{
p->SA=2*a[i][1];
p->pf[0]=a[i][2];
p->pf[1]=a[i][1];
p->pf[2]=a[i][0];
last->next=p;
last=p;
}
}
else
{if((jj[i]=='1')&&(b[i]=='1'))
{
CreateNode(p);
p->SA=2*a[i][1];
p->pf[0]=a[i][2];
p->pf[1]=a[i][1];
p->pf[2]=a[i][0];
last->next=p;
last=p;
}
else
{if((jj[i]=='0')&&(b[i]=='1'))
{
CreateNode(p);
p->pf[0]=a[i][0];
p->pf[1]=a[i][1];
p->pf[2]=a[i][2];
p->SA=0;
last->next=p;
last=p;
}
else
{if((jj[i]=='1')&&(b[i]=='0'))
{
CreateNode(p);
p->pf[0]=1;
p->pf[1]=1;
p->pf[2]=1;
p->SA=0;
last->next=p;
last=p;
}
else
{
CreateNode(p);
p->pf[0]=1;
p->pf[1]=1;
p->pf[2]=1;
p->SA=0;
last->next=p;
last=p;
}
}
}
}
}
last->next=NULL;
return h;
}
用gdb调试出现:
Program received signal SIGSEGV, Segmentation fault.
0x080491c4 in Crt (n=12, b=0x3e680000
if(b[i]=='1')
根据gdb的提示信息说是b数组越界访问,但总找不出具体错误在哪,还请大神指教!