• 已解决 41243 个问题
  • 已帮助 5882 位优秀工程师

STM32使用calloc分配内存,但没有使用free释放有没有影响?

韩梅梅 2021-02-23 浏览量:23
STM32使用calloc分配了一个内存,但没有使用free释放。关电重启能不能自动清除之前分配的内存?
或者说看门狗复位能不能自动清除之前分配的内存?
会不会重启或软件复位都不能清除之前申请内存,长期以往造成内存不够用申请内存失败?

单片机 STM32
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:4
  • 不释放的话,就会一直占用,如果还不停的申请,最后,会无法申请到,导致程序运行bug

  • 关电可以释放,看门狗也可以释放,如果要长期存储只能使用外部ram,而且用rtc电池供电的ram

  • 不释放就会越占越多了,最后,无法再申请成功了

  • 关电重启也不能确保一定释放,所以最好程序中先对堆初始化,自己可以做个测试,不初始化的时候malloc的地址是不是在变化。

STM32使用calloc分配内存,但没有使用free释放有没有影响?