liteos不采用malloc的原因

问问题描述

liteos不采用malloc的原因,跪求万能的网友,帮帮我!

答精选答案

最佳答案

这是因为内存有限啊,嵌入式的内存就只有几十K到几百K,当然你指的嵌入式应该是单片机,不能运行Linux系统的嵌入式系统,可以上Linux系统的嵌入式就可以使用标准C开发了,同样具有malloc函数。

主要原因是内存太小的问题,深层次的原因是由于标准C库的内存管理的容易产生碎片,不利于在小内存运行。

通过自己实现内存管理,从本质上是预先分配一大段内存(嵌入式中就是一个大的数组),那后在依据需要保存的对象大小,按特定的方式分配的。

比如,你需要存储的记录为256字节,假设需要存取16条记录,那么,就需要分配256*16=4096字节,这样就需要4k的数组才可以分配了,这样就避免了内存碎片。

当然这是以灵活性为代价的,如果是可变的,处理方式就比较复杂了,一般在单片机中需要避免,可以分区域(多分配几个数组),取最大长度。

本文来自作者[鄭元暢老婆]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/changshijingxuan/202609/1529475.html

赞 (0)

发表回复

本站作者后才能评论

评论列表(4条)

  • 鄭元暢老婆
    鄭元暢老婆 2026年09月30日

    我是公众科技网的签约作者“鄭元暢老婆”!

  • 鄭元暢老婆
    鄭元暢老婆 2026年09月30日

    希望本篇文章《liteos不采用malloc的原因》能对你有所帮助!

  • 鄭元暢老婆
    鄭元暢老婆 2026年09月30日

    本站[公众科技网]内容主要涵盖:教育咨询,知识百科

  • 鄭元暢老婆
    鄭元暢老婆 2026年09月30日

    本文概览:这是因为内存有限啊,嵌入式的内存就只有几十K到几百K,当然你指的嵌入式应该是单片机,不能运行Linux系统的嵌入式系统,可以上Linux系统的嵌入式就可以使用标准C开发了,同样具有malloc函数。 主要原因是内存太小的问题,深层次的原因是由于标准C库的内存管理的容易产生碎片,不利于在小内存运行。 通过自己实现内存管理,从本质上是预先分配一大段内存(嵌入式中就是一个大的数组),那后在依据需要保存的对象大小,按特定的方式分配的。比如,你需要存储的记录为256字节,假设需要存取16条记录,那么,就需要分配25

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们