9189 - 8438 = 841;在没有malloc的情况下,剩余的内存是否还会被使用?
查看更多
这块区域实际是被堆管理的,不rt_malloc就不会使用的。
free 命令是展示系统中内存的使用情况,并不是 malloc() 、 free() 函数的含义。如果想释放空间只能在代码中进行释放。free 命令的源码在 rt-thread/components/finsh/msh.c 文件中,如下所示。从源码可以看出来执行 free 命令 实际执行的是 list_memheap 或者 list_mem 命令,因此该命令只是一个显示系统中内存占用情况的功能。
#ifdef RT_USING_HEAPint cmd_free(int argc, char **argv){ extern void list_mem(void); extern void list_memheap(void);#ifdef RT_USING_MEMHEAP_AS_HEAP list_memheap();#else /* RT_USING_MEMHEAP_AS_HEAP */ list_mem();#endif return 0;}MSH_CMD_EXPORT_ALIAS(cmd_free, free, Show the memory usage in the system.);#endif /* RT_USING_HEAP */
#ifdef RT_USING_HEAP
int cmd_free(int argc, char **argv)
{
extern void list_mem(void);
extern void list_memheap(void);
#ifdef RT_USING_MEMHEAP_AS_HEAP
list_memheap();
#else /* RT_USING_MEMHEAP_AS_HEAP */
list_mem();
#endif
return 0;
}
MSH_CMD_EXPORT_ALIAS(cmd_free, free, Show the memory usage in the system.);
#endif /* RT_USING_HEAP */
该命令的显示结果显示了系统中使用的最大内存空间的大小,具体剩余的内存会不会被使用还需要根据你的代码具体分析。在不申请的情况下,剩余的是不会被使用的。
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
我意思是我用“free命令行”查询单片机还剩下“841字”的空间,这“841字节”的空间在我“不申请内存”的情况下,还会不会被占用。