未指定指针

时间:2016-11-18 22:51:56

标签: c sorting graph linked-list

我正在为一个班级开展这个小项目,我遇到了这个问题。 我在这个例子上运行了ddd,当它退出while循环时,prev被设置为null,导致分段错误。

当我运行ddd时,我注意到temp不是null而且两个" prev是nulln"打印语句不会被绊倒,但是循环外的那个会发生。

你知道会发生什么吗?

        while(temp)
        {
            printf("while loop.\n");
            if(pe->y > temp->y)
            {
                printf("while - if reached.\n");
                break;
            }//end if statement

            prev = temp;
            if(prev == NULL)
                printf("prev is null1\n");
            temp = temp->next;
            if(prev == NULL)
                printf("prev is null2\n");
        }//end while loop
        if(prev == NULL)
            printf("prev is null3\n");
        prev->next = pe;//redit links so that node is added in.
        pe->next = temp;

1 个答案:

答案 0 :(得分:3)

如果在循环的第一次迭代中它成立:

    if(pe->y > temp->y)

然后你永远不会初始化prev