【发布时间】:2013-11-27 01:28:42
【问题描述】:
malloc 实际上是如何获得微控制器中当前可用的可用内存空间的。 它是否在运行时连续保留未分配区域的列表? 如果代码中有两条malloc语句,如何获取上一次malloc分配内存分配的信息
如何在运行时知道哪些内存是空闲的,哪些不是。在编译时,我们可以知道编译器为变量分配了 RAM 中的哪些位置。 malloc 是否使用此信息来执行此操作。
【问题讨论】:
-
视情况而定。并非所有的实现都是一样的。
-
尝试阅读这篇文章:stackoverflow.com/q/5422061/10077
-
我是这个领域的新手,所以如果我的问题是错误的,请原谅。实际上,在需要的内存量可能仅在运行时才知道的情况下。所以当需要内存时“搜索一个足够大的块来满足请求”。如何在运行时知道哪些内存是空闲的,哪些不是。在编译时,我们可以知道编译器为变量分配了 RAM 中的哪些位置。 malloc 是否使用此信息来执行此操作。如果问题无法理解,我的英语很差,请告诉我。
-
为什么你需要知道这个?你明白没有唯一的答案吗?
-
所以阅读 malloc 实现的代码,周围有很多。
标签: c memory-management embedded microcontroller