急求大牛啊,这个简单的链表到底在哪出错了

#include

#include

struct list {

char str;

struct list * next;

};

int main()

{

struct list * head = NULL;

struct list * prev,* current;

char input;

while(scanf("%c",&input) && input != '#'){

current = (struct list *)malloc(sizeof(struct list));

if(head == NULL)

head = current;

else

prev->next = current;

current->next = NULL;

current->str= input;

prev = current;

}

if(head == NULL)

printf("NO DATA\n");

else

printf("the string:\n");

current = head;

while (current != NULL){

printf ("%c",current->str);

current = current->next;

}

current = head;

while (current != NULL){

free(current);

current = current->next;

}

printf("\n");

return 0;

}

VC6.0编译完也输出了 但是怎么出现了一个框Debug Assertion Failed!然后程序停止工作了

求各位大牛给我解释下啊,小弟感激不尽啊,我无语啊,在这上边纠结几天了,看了好多链表

也没看出来,有的说是内存泄露,不明白啊 怎么解决,急啊啊啊啊!

struct

list

------解决方案--------------------

问题出在这里啊

while (current != NULL){

free(current);

current = current->next;

}

你都把这个指针所指向的内存释放了,下面怎么又使用了呢?

建议如下:

while (current != NULL){

prev=current->next;

free(current);

current = prev;

------解决方案--------------------

用debugger单步跟一跟。

------解决方案--------------------

1楼应该是对的,free后就释放掉了

------解决方案--------------------

楼主可以在第44行设置个断点,

看看程序走到这个断点后,为什么free的时候会出问题。

你这样第一次free估计没啥问题,第二次应该会有问题了

c语言链表容易犯的错误,急求大牛啊这个容易的链表到底在哪出错了相关推荐

  1. C语言中常犯的错误(一)

    程序出错有三大类:语法错误.逻辑错误和运行错误 对于语法错误,编译器会给出精确到行的提示:逻辑错误则需要在流程图的辅助下,重点关注留意花括号,进行判定:而运行错误则是指程序在接收到某些数据时因为处理不 ...

  2. C语言新手常犯的错误-截断

    截断往往发生在复制过程中 准确地说,是将占用字节数较多的变量赋值给占用字节数较少的变量时,如j将long(16个字节)赋值给char(1个字节)时,这时候long类型的变量只将最低的一位赋给了char ...

  3. c语言中经常犯的错误

    1.切忌将函数的参数作为数组定义时的长度 例如 f(int x){ a[x]; }

  4. C语言实现数据文件怎么找,急求如何将下列C语言程序数据存储到文件中?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中. #include int ...

  5. c语言保存文件格式如何改回来,急求如何将下列C语言程序数据存储到文件中?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中. #include int ...

  6. 用c语言复制字符串的元音字母,急求:编写程序,将一个字符串中的元音字母复制到另一个字符串,然后输出。...

    #include #include void str(char a[100],char b[100]) { int i=0, j=0; while(a[i]!='\0')//'\0'代表ASCLL码0 ...

  7. c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中. #include int ...

  8. c语言源程序文件.c如何保存,急求如何将下列C语言程序数据存储到文件中?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中. #include int ...

  9. c语言数学语文英语成绩编程,急求一编程题!…

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include "stdlib.h" int i,j; struct STUDENT { int xuehao; ...

最新文章

  1. python画图程序有图-python画图程序
  2. keras从入门到放弃(九) 处理过拟合
  3. React性能优化 PureComponent
  4. win10 平台VS2019最简安装实现C++/C开发
  5. jq之省市区级联插件
  6. (12)Node.js核心模块fs—实现文件复制和压缩
  7. 新人起步,扬帆起航!
  8. Exchange 2010 无法删除第一个mailbox
  9. linux dstat io,linux dstat工具
  10. VC编程中,判断野指针
  11. python之os模块详解
  12. Java多线程(7):JUC(下)
  13. 好用过头的LeetCode刷题模板分享!(已拿亚麻offer)
  14. JAVA定义矩形类 方法一
  15. P2882 [USACO07MAR]Face The Right Way G 【贪心 + 差分】
  16. 联想开机启动项按哪个_联想台式电脑设置第一启动的快捷键是什么
  17. LJX的校园:体育课
  18. GEWV2.3L22A-SLIC烧坏问题经验案例
  19. 程序员个性化简历模板项目
  20. opencv python考勤_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(二)

热门文章

  1. NetBeans 时事通讯(刊号 # 146 - May 13, 2011)
  2. linux下备份mssql文件,linux服务器怎么定时备份mysql的sql文件数据
  3. golang微服务框架对比_微服务里程碑,Golang与Spring Cloud Alibaba完美结合
  4. linux 脚本设置时间戳,修改linux系统时间的方法(date命令)
  5. oracle10默认备份路径,oracle 10g RMAN备份及恢复
  6. oracle rman imp exp,Oracle-client支持exp|imp|rman
  7. 全局变量中断原子操作_原子操作原理分析
  8. 智能车竞赛线上培训:基于英飞凌AURIX的BLDC控制方案
  9. 第十七届智能车竞赛LOGO设计
  10. 两款带有WiFI的MicroPython模块:ESP32,ESP8266