单片机 建立动态链表

[复制链接]
查看11 | 回复4 | 2008-8-4 21:20:16 | 显示全部楼层 |阅读模式
我知道单片机不能动态分配空间 但是我确实需要做动态链表
解决根据扫描的总值确定开辟空间大小
谁告诉我怎么做 要多少分给多少分
c语言啊
malloc动态分配内存是os的事 所以大部分单片机还是干不了这个事的 虽然keil有吧 还是不要尝试了
我已经用另外的方法解决了
谢谢大家了
有关的大家还可以提 等问题到期限了我再给大家分~~~

回复

使用道具 举报

千问 | 2008-8-4 21:20:16 | 显示全部楼层
我没有在单片机底下进行过c编程,但是我觉得道理是相通的楼主既然决定足够的开辟空间大小知道有多少个节点的话可以可以全部先静态分配好比如struct linknode{int data;struct linknode* next;};struct linknode a;struct linknode b;struct linknode c;...这个样子那些空间就分配好了a.next=&b;b.next=&c;当然每次操作都要把哪个变量使用了,那个被释放了做一下记录就算是开辟一个连续空间struct linknode node[len];然后node.next=&node[i+n
回复

使用道具 举报

千问 | 2008-8-4 21:20:16 | 显示全部楼层
我目前也在做一道类似的题,希望动态建立双向查询的线性链表,在vc上面编好调试能满足效果,但是单片机还是不行,malloc函数动态开辟存储空间失败,方法二第一个节点建立没问题但是,但是CreatMember()创建第二个节点就出问题了,两个函数在VC下工作完全正常,不知道 楼主是怎么解决这个问题的,真心请教:void InitLine(){
回复

使用道具 举报

千问 | 2008-8-4 21:20:16 | 显示全部楼层
单片机静态存储器就那么一点点,不知道你的动态链接有多少,如果太大,不可能,如果不是太大,就按最大的设置吧!建立一个数组就可以了!
回复

使用道具 举报

千问 | 2008-8-4 21:20:16 | 显示全部楼层
可以的 至少我这么做过 单片机也支持malloc 包含头文件malloc.h跟在电脑上程序是一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行