博客
关于我
【链表问题】建立链表遇到的问题(链表突然消失,链表突然全部为空)_liangchaoxi的IT博客_新浪博客...
阅读量:478 次
发布时间:2019-03-06

本文共 759 字,大约阅读时间需要 2 分钟。

 在单片机程序内建立链表时候,无法为第三个节点开辟空间,现象是,建立链表的时候,第一个和第二个节点均能正确加入,将第三个节点加入的时候,整个链表内的为空。

 原因是:

 单片机使用Mallco时候要考虑指定区域,指定的区域一定要足够大。

 我们调试的时候,就是在IAR中增加堆栈的空间。 

 

在IAR中调试程序,遇到了这样的问题,那就是,程序运行的过程当中,链表的内容突然为空,读取链表的内容失败。分析了一下原因是,一开始我们是只发现添加失败,添加前面的1、2个单元是成功的,到了第三个就失败了,查看了分配空间的程序malloc,malloc分配一个连续的空间,如果分配失败,返回的就是一个空地址,而我们的链表头刚好等于返回值Token_Head=inset(Token_Head,New_point);,所以链表头“不见了”,自然链表就消失了。

 

 

删除节点后应该,释放空间,要不然,再需要重复插入删除的程序中,插入的空间不会被重新利用,而新插入的又要新的空间,如此反复,再大的空间也不够用。下面这个程序放在循环中,循环到一定的次数,就会看到,链表突然“全部变为空”。

 

void Test_List(void)//建立固定链表
{
  for(i=0;i<60;i++)
  {
    strcpy(Mark_Del_Node,Token_Head->MacID);
    Token_Head=del( Token_Head,"0005");
    struct MacID_Struct *New_point;
    New_point=(struct MacID_Struct*)malloc(LEN);
    strcpy(New_point->MacID,"0005");
    Token_Head=inset(Token_Head,New_point);
  }
}

转载地址:http://kkidz.baihongyu.com/

你可能感兴趣的文章
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
查看>>
nginx日志分割并定期删除
查看>>
Nginx日志分析系统---ElasticStack(ELK)工作笔记001
查看>>
Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
查看>>
nginx最最最详细教程来了
查看>>
Nginx服务器---正向代理
查看>>
Nginx服务器上安装SSL证书
查看>>
Nginx服务器的安装
查看>>
Nginx模块 ngx_http_limit_conn_module 限制连接数
查看>>
nginx添加模块与https支持
查看>>
Nginx用户认证
查看>>
Nginx的location匹配规则的关键问题详解
查看>>
Nginx的Rewrite正则表达式,匹配非某单词
查看>>
Nginx的使用总结(一)
查看>>
Nginx的使用总结(三)
查看>>
Nginx的使用总结(二)
查看>>
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>