数据结构 二叉树 keil

keil不能编译malloc函数 请问哪位大神知道单片机如何存储二叉树结构数据?

4个回答

嵌入式程序可以用堆内存,但与芯片有关,如果是ARM就可以。如果是51,不止malloc不好用,很多C库函数都不好用。我见过的嵌入式系统中,也只是操作系统用对内存,一般应用不提倡用的。。。。。因为堆内存有不可预知性,比如万一申请不到内存怎么办,一般嵌入式系统资源有限。有很多公司的设计基准明确规定不允许使用堆内存。

sbkobesb
sbkobesb 如果用VC来写,能移植到ARM芯片上吗?
接近 5 年之前 回复

如果用VC来写,能移植到ARM单片加上吗?

malloc函数本身建立在对操作系统内存管理的基础之上,单片机的话你需要自己管理内存,或者通过借鉴小型操作系统比如uCOSII来实现内存的管理,分配和使用~

yunfenglw
天朗-星空 但紧紧是二叉树结构的数据,没必要简历内存管理机制吧~只需要对内存相应的读写操作就好,需要对处理器memory map清楚,汇编熟悉~
接近 5 年之前 回复
yunfenglw
天朗-星空 回复sbkobesb: 首先你要对块设备熟悉,基本的读写操作,在基本的读写操作上可以用类似的断页机制来实现内存的管理、分配、使用、释放~
接近 5 年之前 回复
yunfenglw
天朗-星空 回复sbkobesb: 首先你要对块设备熟悉,基本的读写操作,在基本的读写操作上可以用类似的断页机制来实现内存的管理、分配、使用、释放~
接近 5 年之前 回复
sbkobesb
sbkobesb uCOSII如何来实现二叉树结构数据 的内存的管理,分配和使用?
接近 5 年之前 回复

你这还是没看懂我的意思。vc什么的是你要用的工具和语言。你要的目的是在芯片上实现malloc等内存处理相关操作,这个是需要有操作系统的。如果你的ARM中含有一个小型的操作系统那么用上面的
函数是可以的。至于你说的VC移植到ARM上,我没搞懂你的意思。你是指在VC上编ARM的程序然后再往ARM移吗?如果是这样,我觉的是不行的,因为一般的ARM都要求一个编译环境,而VC却不是这个编译环境

autocyz
autocyz 嵌入式系统也有很多种,一般来说只要你的芯片存储空间够大,那么是实现malloc的。而且目前这些嵌入式的小型操作系统比较成熟了,资源也比较多了,人家写好底层封装 ,你直接拿来用就行
接近 5 年之前 回复
sbkobesb
sbkobesb 你的意思是说带操作系统的arm芯片可以实现malloc等内存处理相关操作,如果可以 申请到的内存可用性怎么样?
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问