调试中函数中每次运行到一个赋值语句,就会直接跳到函数末尾,想知道是什么原因
语言是C语言,编译器是Dev c++
{ *(fzu+1)=z[1];
*(fzu+2)=z[2];
fzu->length=z->length+length6;
nodezhongjian=getDianDao(node3);
*(fzu+3)=nodezhongjian;
}//else if(flag3==0)
运行到第4行就会直接跳到末尾。
该函数中变量如下定义:
int j,k,w,o,t1,t2,r,y,flag,u,v,c,x,count=0,length1,length2,length3,length4,length5,length6,flag3,flag4;
link1 l1[i+1][i+1];
link1 fzu,node2;
NODE1* node4;
static int quanchang;
static NODE1 node3,nodezhongjian;
double sum;
getDianDao函数如下:
NODE1 getDianDao(NODE1 q)
{
NODE1 w;
int a,b;
if(q.flag1==0) return q;
else
{
a=b=w.leftTail=q.rightTail;
while(quanju[a].left!=0)
{
a=b=quanju[b].right=quanju[a].left;
}
}
quanju[w.leftTail].left=quanju[w.leftTail].leftTail=0;
quanju[w.rightTail].right=quanju[w.rightTail].rightTail=0;
w.data=q.data;w.flag1=q.flag1;w.length=q.length;
return w;
}
经实验,出问题的语句不在函数内部可以正常运行。