STM32 堆溢出 遇到的问题 最近在给旧项目添加了段代码,程序经常到某个状态就突然崩溃了,也不一定是在运行新代码的时候崩溃.检查了几遍代码,数组越界访问,除数为0,内存泄露等常见的问题都不存在. 原因 最后发现,问题出在程序中用mallc动态分配内存,却没对是否成功分配做检查.程序中,因为堆空间不足,分配内存不成功,malloc返回NULL.后面的代码对NULL地址进行写操作,引起了程序崩溃. 后续的一些概念整理 STM32系列单片机在startup_stm32fxx.s文件中,定义了Heap…