gpt4 book ai didi

c++ - 为什么 free() 没有释放我的 Arduino Uno 上的 RAM

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:18 27 4
gpt4 key购买 nike

我试图通过在 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);
}

此外,如何“释放”这样的内存?

最佳答案

您不能期望 __brkval 会因为您在单个内存块上调用了 free() 而减少。内存块将被标记为空闲且可重复使用,但通常__brkval 只会根据最大 数量向一个方向移动您的程序在任何时候使用的内存。

关于c++ - 为什么 free() 没有释放我的 Arduino Uno 上的 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com