为什么free()没有释放我的Arduino Uno上的RAM
Why is free() not freeing up RAM on my Arduino Uno
我试图通过在与free()函数一起使用后删除变量来释放RAM,但我的RAM没有清理。 我想没有进行垃圾清理? 在我退出代码部分(作用域的 if 语句、while-loop 或函数)后,空间会清理干净,但 free() 语句本身不会清理。
我正在执行以下操作来检查RAM:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
此外,如何"释放"这种记忆?
您不能仅仅因为您在单个内存块上调用free()
而期望__brkval
降低。内存块将被标记为可用并可供重用,但通常,__brkval
只会根据程序在任何时候使用的最大内存量向一个方向移动。
相关文章:
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- 如何将我的草图上传到Arduino Nano?
- 为什么我的 arduino 按钮在 0 和 1 以外的端口上不起作用?
- 如何确保我的 Arduino 秒表的时间准确?
- 在我的 Arduino 库中使用外部库
- 我的Arduino串行命令行不起作用,我不知道为什么
- 为什么我的Arduino代码用于运行蓝牙控制的机器人,障碍物传感器无法正常工作
- Arduino Nano - 为什么我的引脚表现得如此?
- Arduino:如何将其他类的对象用作我的库的参数
- 为什么我的串行串行在Arduino IDE上通过串行显示器进行两次打印
- 如何使步进电机运行,直到我按下 Arduino 上的特定键盘按钮
- 我如何对此代码进行添加以使用我的 arduino 打印一个完整的三角形
- 为什么我的 Arduino 不能比较 10 以上?
- 如何从我的自定义类中的现有类调用方法 (arduino)
- 为什么free()没有释放我的Arduino Uno上的RAM
- 我的arduino传感器程序出了什么问题
- 从ESP8266 Arduino连接到我的服务器
- Arduino 无法让我的布尔值工作
- 为什么我的Arduino类构造函数需要一个参数
- 如何通过引用在Arduino我的类传递串行对象