高手帮忙看看我的这段链表删除函数代码哪儿出错了。运行老是出错。

struct student *del(struct student *head,long num1)
{
struct student *p1,*p2;
if(head=NULL)
{
printf("\nlist null!\n");
return(head);
}
p1=head;
while((num1!=p1->num)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(num1==p1->num)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("delete:%ld\n",num1);
n=n-1;
}
else
printf("%ld not been found!\n",num1);
return(head);
}

if(p1==head)
head=p1->next;
error here;
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言单链表创建和排序问题代码问题,我运行时老是程序错误,不知道哪 ...
1、首先说说你的命名问题,不说其他的,在你的工程中,至少要统一化,比如这个函数命名,要么都是小写,要么都是开头大写,这样更让人容易理解。2、关于英文的问题,推荐你一个软件,有道翻译,我都是边写边查找翻译的。3、关于冒泡排序的问题,你可以在看看在百度百科上的例子。我其实不太习惯官方的...

链表求长,老是运行不了,高手帮看下、、
首先Length_L()这个函数里面return写在了printf前面,那是肯定执行不到printf的,另外你的p=p->next;之后p->next没有赋值,他是随机值而不会是NULL在Length_L()函数里面判断就会出问题,下面的应该能对 include <stdio.h> include <malloc.h> typedef struct LNode{ int data;struct LNode ...

Linux,谁帮忙看看这段程序,用readdir()怎么什么都读不到,路径下是有...
...郁闷,调试了好半天才发现错误,开始都一直在看库函数调用的问题,找了半天也没错,只有单步调试了,单步调试才看到错误,你看你的传回目录链表的节点那的判断语句 if(dir_head=NULL)dir_head=cur_item;这样传回的值不是空才怪呢..应该是if(dir_head==NULL)

c中编程成功但看不到结果输出,能帮忙看看是哪里出问题了么?_百度知 ...
编译成功只表示程序代码没有语法错误,但是图中的程序代码有逻辑上的错误,运行以后会进入死循环。问题就在while(...);这一行的末尾多了一个分号,有了这个封号循环的条件,就一直成立,就死循环了。请把这个封号删除。

单链表逆置的调试分析
3、在销毁链表的时候,也遇到过一个问题,现在还没弄明白是为什么。在销毁链表的函数中,如果参数接受两个链表来销毁的话,如:void DestroyList(Number *&L1,Number *&L2),运行会出错,或许是我写的代码不正确;但是,当用void DestroyList(Number *&L)来一个链表一个链表的销毁就没问题。

0xc0000005写入位置时发生访问冲突解决方法
11、这段代码有几个小问题如图标记1这里虽然没错,但是建议最好不要返回NULL, 还是返回head因为如果之前链表不为空,只是在加一个节点失败返回NULL,我想你也是用head来接收返回值那就会因为一个失败把原来的链表没有头。12、可能使用了未分配的指针,导致非法访问。13、int static b=1定义一个静态...

初学链表,不知如何建立动态链表,请高手帮忙分析一下下面的种种错误,谢...
首先create后面要带括号。才是函数调用。第二,感觉你在create的函数里的while循环怪怪的。。head的next直接指向自己。。感觉有点问题。带头结点的链表,head一般是一个空数据,不做实际使用。

求看下这个用C语言写的约瑟夫环代码错在哪儿
void del_Joseph(Joseph*current_p,Joseph *pre_p)这个函数去掉参数列表,直接用全局变量就行,不去掉反而会错。因为,当他们作为参数传递时,本身的值是不能被改变的。而你在函数中释放掉current_p所指向的空间,但current_p仍指向该空间,导致后面出错。发现这个问题,只要你打印下每次删除的值就行了...

急 链表小问题 高手帮帮忙吧! 我用一个链表来实现输入和输出的功能可...
大概看了一下,首先是create(void)函数创建结点的指针逻辑不对:其中p1=p2=new Stu开辟了一个结点空间,使p1、p2都指向了这个结点,而后面p2->next=NULL实际上就使这个刚创建的结点作为最后一个结点了。所以无论输入多少次,最后就只有一个结点!

...运行出现程序已停止工作,请高手帮忙为什么运行界面显示此程序已停...
可能有几种情况:1.程序没有等待输入输出,很快的运行完毕并退出了 2.程序没有等待输入,很快计算完毕输出并退出了 3.程序一运行就出错退出了 你没说详细情况也没有代码,不明白你说的是哪种情况,你到命令行下,进到程序所在目录,手动输入程序名并回车,看看命令上有无提示信息吧 ...

相似回答
大家正在搜