调试中函数中每次运行到一个赋值语句,就会直接跳到函数末尾,想知道是什么原因

调试中函数中每次运行到一个赋值语句,就会直接跳到函数末尾,想知道是什么原因
语言是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;
}

经实验,出问题的语句不在函数内部可以正常运行。

是那条语句有问题呢,说明一下行号。

可以考虑函数内部逐段代码注释来看看效果,已确定哪段代码产生影响。
另外第一段代码看不明确,代码块还有啥啊?这是代码的最后一行语句?