我试图通过在使用free()函数后删除变量来释放RAM,但我的RAM没有清理。我想没有垃圾清理工作?退出代码段(带范围的if语句,while循环或函数)后,空格会清空,而不是free()语句本身。
我正在执行以下操作来检查RAM:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
此外,如何“释放”这样的记忆?
答案 0 :(得分:7)
由于您在单个内存块上调用了__brkval
,因此不能指望free()
减少。内存块将标记为,并且可以重复使用,但通常__brkval
只会根据最大内存量向一个方向移动你的程序在任何时候使用。